我有数据框,df
date name count
0 2017-08-07 ABC 12
1 2017-09-08 ABC 5
2 2017-09-22 TTT 6
3 2017-09-23 TAC 5
4 2017-10-09 ABC 10
现在应该是:
Index ABC TTT TAC
August 12 0 0
September 5 6 5
October 10 0 0
然后每个月的总和
index
August 12
September 16
October 10
以下是代码:
df.date= pd.to_datetime(df.date)
df2 = df.groupby(pd.Grouper(key='date', freq='1M')).unstack().sum()# groupby each 1 month
df2.index = df2.index.strftime('%B')
print(df2)
我收到此错误:AttributeError:无法访问'DataFrameGroupBy'对象的可调用属性'unstack',请尝试使用'apply'方法
答案 0 :(得分:1)
Unstack用于从多索引中删除索引级别。您在使用聚合函数之前应用了unstack。这就是你得到错误的原因。即便如此,我认为你的团队存在一些问题。以下是否适用于您?
df.date= pd.to_datetime(df.date)
df2 = df.groupby( [pd.Grouper(key='date', freq='1M'),"name"])["count"].sum().unstack()
df2.index = df2.index.strftime('%B')
print(df2)