我在csv文件中有这样的数据
Symbol Action Year
AAPL Buy 2001
AAPL Buy 2001
BAC Sell 2002
BAC Sell 2002
我可以像这样阅读和分组
df.groupby(['Symbol','Year']).count()
我懂了
Action
Symbol Year
AAPL 2001 2
BAC 2002 2
我希望这个(顺序无所谓)
Action
Symbol Year
AAPL 2001 2
AAPL 2002 0
BAC 2001 0
BAC 2002 2
我想知道是否有可能算零次
最佳答案
您可以将 pivot_table
与 unstack
结合使用:
print df.pivot_table(index='Symbol',
columns='Year',
values='Action',
fill_value=0,
aggfunc='count').unstack()
Year Symbol
2001 AAPL 2
BAC 0
2002 AAPL 0
BAC 2
dtype: int64
如果您需要输出为
DataFrame
,请使用 to_frame
:print df.pivot_table(index='Symbol',
columns='Year',
values='Action',
fill_value=0,
aggfunc='count').unstack()
.to_frame()
.rename(columns={0:'Action'})
Action
Year Symbol
2001 AAPL 2
BAC 0
2002 AAPL 0
BAC 2
关于python - Pandas groupby为零值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37003100/