石斑鱼与堆栈()

时间:2017-12-20 23:58:15

标签: python pandas

我有数据框,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'方法

1 个答案:

答案 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)