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
标签:python,pandas,resampling 来源: https://codeday.me/bug/20190824/1711770.html