Python pandas,如何仅绘制有数据点的DataFrame,并留出间隙
我有一个数据框,里面是一天内的数据,使用的是日期时间索引。
df1 =pd.DataFrame(np.random.randn(6,4),index=pd.date_range('1/1/2000',periods=6, freq='1h'))
df2 =pd.DataFrame(np.random.randn(6,4),index=pd.date_range('1/2/2000',periods=6, freq='1h'))
df3 = df1.append(df2)
从图中可以看到,在df3
的两天之间有一个很大的空白。
当我用df3.plot()
来画图时,它会显示从2000-01-01 00:00:00
到2000-01-02 05:00:00
的每一个小时,但实际上从2000-01-01 06:00:00
到2000-01-02 00:00:00
之间是没有任何数据的。
我该怎么做,才能在图中不显示从2000-01-01 06:00:00
到2000-01-02 00:00:00
的这些空白数据点呢?
2 个回答
2
一种方法是在绘图之前先进行重采样
(按小时重采样):
df3.resample('H').plot()
注意:这样做可以确保在真实值之间有NaN值,这些值不会被绘制出来(而不是被连接起来)。这意味着你在这里存储了更多的数据,这可能会成为一个问题。
2
这似乎在Google的讨论组里讨论了很长一段时间。