我的数据可以在给定日期包含多个事件,也可以在一个日期包含否事件。我接受这些事件,按日期计数并绘制它们。但是,当我绘制它们时,我的两个系列并不总是匹配。
idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max())
s = df.groupby(['simpleDate']).size()
在上面的代码中,idx变为30个日期范围。2013/09/01至2013/09/30但是S可能只有25或26天,因为在给定日期没有事件发生。然后,当我尝试绘制时,由于大小不匹配,我得到一个AssertionError:
fig, ax = plt.subplots()
ax.bar(idx.to_pydatetime(), s, color='green')
解决这个问题的正确方法是什么?我是否要从IDX中删除没有值的日期,或者(我希望这样做)是将序列中缺少的日期添加为0(我希望这样做)?我希望有30天的完整图表(值为0)。如果这种方法正确,那么有关如何开始使用的任何建议?我需要某种动态reindex
功能吗?
这是S(df.groupby(['simpleDate']).size()
)的代码段,请注意没有输入04和05。
09-02-2013 2
09-03-2013 10
09-06-2013 5
09-07-2013 1
reindex
是一个了不起的功能。它可以(1)对现有数据进行重新排序以匹配一组新标签;(2)在以前不存在标签的地方插入新行;(3)为缺少的标签填充数据(包括通过向前/向后填充)(4)选择行按标签!