石斑鱼()

2024-04-26 21:33:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有数据帧,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”方法


Tags: 数据namedfdateindexpdtacdf2
1条回答
网友
1楼 · 发布于 2024-04-26 21:33:15

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)

相关问题 更多 >