大熊猫时间序列的聚合和绘图



我有一个以日期为索引的数据帧。我想统计每两周汇总的事件并进行绘图。示例:

date        id
2018-01-01  a1
2018-01-01  a2
2018-01-05  a3
2018-01-12  a4
2018-01-15  a5
2018-01-17  a6
2018-01-19  a7
...

应该显示为(格式令人沮丧,如果我能辨别,那就好了(:

2018-01-1   4
2018-01-2   3
...

然后进行绘图。

如果可能的话,我想要一个参数,这样我就可以切换到每周或每月。

如果日期是索引,则可以使用具有SemiMonthStart('SMS'(频率的resample

df.index = pd.to_datetime(df.index)
df.resample('SMS').count()

输出:

id
date          
2018-01-01   4
2018-01-15   3

您也可以使用日期偏移量(此处为SemiMonthBegin(来舍入日期,并将此结果用于groupby+count:

group = (pd.to_datetime(df['date'])
.apply(pd.offsets.SemiMonthBegin().rollback)
)
out = df.groupby(group)['id'].count()

输出:

date
2018-01-01    4
2018-01-15    3
Name: id, dtype: int64

最新更新