Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pandas groupby for zero values

I have data like this in a csv file

Symbol  Action  Year   AAPL     Buy  2001   AAPL     Buy  2001    BAC    Sell  2002    BAC    Sell  2002 

I am able to read it and groupby like this

df.groupby(['Symbol','Year']).count() 

I get

             Action Symbol Year         AAPL   2001       2 BAC    2002       2 

I desire this (order does not matter)

             Action Symbol Year         AAPL   2001       2 AAPL   2002       0 BAC    2001       0 BAC    2002       2 

I want to know if its possible to count for zero occurances

like image 742
NinjaGaiden Avatar asked May 03 '16 11:05

NinjaGaiden


1 Answers

You can use this:

df = df.groupby(['Symbol','Year']).count().unstack(fill_value=0).stack() print (df) 

Output:

             Action Symbol Year         AAPL   2001       2        2002       0 BAC    2001       0        2002       2 
like image 185
Joe Avatar answered Sep 21 '22 04:09

Joe