我的pd.TimeGrouper("M")每月对每日数据进行分组,但是很遗憾,汇总日期是该月末,而我希望该月初。使用TimeGrouper的任何参数均无法解决此问题。

输出:

2003-01-31   29853   2071
2003-02-28   26668   2651
2003-03-31   37380   2324
2003-04-30   25344   1448


预期产量:

2003-01-01   29853   2071
2003-02-01   26668   2651
2003-03-01   37380   2324
2003-04-01   25344   1448


这是使用label='left'的输出:

df.groupby([pd.TimeGrouper("M", label='left'), 'status']).sum()

                        TUFNWGTP  TELFS  t070101  t070102  t070103  t070104  \
TUDIARYDATE status
2002-12-31  emp     4.514715e+09   1244     8462      506     1265    19391
            unemp   3.857707e+08    322      687       45      162     1147
2003-01-31  emp     3.677095e+09   1015     7915      561     1300    16599
            unemp   4.522924e+08    403     1073       34       42     1474

最佳答案

您应该使用MS(月份开始):

df.groupby([pd.TimeGrouper("MS", label='left'), 'status']).sum()


请参阅文档中的offset aliases

关于python - Pandas TimerGrouper:索引以开头,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28324497/

10-11 07:34