以下是数据:
date
2016-03-23 hiit
2016-03-30 hiit
2016-04-20 hiit
2016-08-24 hiit
2016-09-04 hiit
2016-10-19 hiit
2016-10-24 hiit
2016-11-07 hiit
2016-11-24 hiit
2016-12-01 hiit
2016-12-04 hiit
2016-12-15 hiit
当我按月使用
对它们进行分组时 df.groupby(pd.TimeGrouper('MS')).count()
现实:
date
2016-03-01 2
2016-04-01 1
2016-05-01 0
2016-06-01 0
2016-07-01 0
2016-08-01 1
2016-09-01 1
2016-10-01 2
2016-11-01 2
2016-12-01 3
所需(数据从2016-01-01
开始)
date
2016-01-01 2
2016-02-01 2
2016-03-01 2
2016-04-01 1
2016-05-01 0
2016-06-01 0
2016-07-01 0
2016-08-01 1
2016-09-01 1
2016-10-01 2
2016-11-01 2
2016-12-01 3
如何实现这一目标?
答案 0 :(得分:3)
重新索引:
r = df.groupby(pd.TimeGrouper('MS')).count()
r.reindex(pd.date_range('2016-1-1', periods=12, freq='MS'), method='bfill')
Out[413]:
data
2016-01-01 2
2016-02-01 2
2016-03-01 2
2016-04-01 1
2016-05-01 0
2016-06-01 0
2016-07-01 0
2016-08-01 1
2016-09-01 1
2016-10-01 2
2016-11-01 2
2016-12-01 3