How not to plot missing periods
我正在尝试绘制时间序列数据,在某些时期内没有数据。 数据已加载到数据框中,我正在使用
这是问题的一个例子
在9月01日至9月08日之间以及9月9日至9月25日之间没有数据,但是以一种似乎在该时间段内有值的方式绘制数据。
我希望在此期间显示零值,或者根本没有值。 怎么做?
请注意,我在[Sep 01,Sep 08],[Sep 09,Sep 29]期间没有NaN值,但是根本没有数据(甚至没有时间索引)。
考虑
1 2 3 4 5 | s = pd.Series( np.arange(10), pd.date_range('2016-03-31', periods=10) ).replace({3: np.nan, 6: np.nan}) s.plot() |
您可以看到
然而:
1 | s.fillna(0).plot() |
我建议
您应该使用NaN值将缺少的日期添加到数据框中。 然后,当绘制这些NaN时,它们会折断线-您将获得几个线段,并且它们之间有空的句点。
该答案最好地说明了如何将缺失的日期添加到数据框中。 概括起来,这应该可以解决问题:
1 | df = df.reindex(pd.DatetimeIndex(df.index), fill_value=NaN) |