python – Pandas:每个子组按月汇总

我有以下熊猫表

                          TUFNWGTP  TELFS  t070101  t070102  t070103  t070104  \
TUDIARYDATE status                                                              
2003-01-03  emp     8155462.672158      2        0        0        0        0   
2003-01-04  emp     1735322.527819      1        0        0        0        0   
            emp     3830527.482672      2       60        0        0        0   
2003-01-02  unemp   6622022.995205      4        0        0        0        0   
2003-01-09  emp     3068387.344956      1        0        0        0        0

我希望将每日数据汇总到每个子组的月度数据.

也就是说,如果没有状态子索引,我会这样做

df.resample('M', how='sum')

如何为每个子组执行每月聚合?

解决方法:

我认为你需要一个DatetimeIndex(而不是一个MultiIndex):

In [11]: df1 = df.reset_index('status')

In [12]: df1
Out[12]:
            status        TUFNWGTP  TELFS  t070101  t070102  t070103  t070104
TUDIARYDATE
2003-01-03     emp  8155462.672158      2        0        0        0        0
2003-01-04     emp  1735322.527819      1        0        0        0        0
2003-01-04     emp  3830527.482672      2       60        0        0        0
2003-01-02   unemp  6622022.995205      4        0        0        0        0
2003-01-09     emp  3068387.344956      1        0        0        0        0

然后使用月度TimeGrouper和状态列执行groupby:

In [13]: df1.groupby([pd.TimeGrouper('M'), 'status']).sum()
Out[13]:
                           TUFNWGTP  TELFS  t070101  t070102  t070103  t070104
TUDIARYDATE status
2003-01-31  emp     16789700.027605      6       60        0        0        0
            unemp    6622022.995205      4        0        0        0        0

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...