Python pandas,如何仅绘制有数据点的DataFrame,并留出间隙

5 投票
2 回答
1316 浏览
提问于 2025-04-17 15:38

我有一个数据框,里面是一天内的数据,使用的是日期时间索引。

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:002000-01-02 05:00:00的每一个小时,但实际上从2000-01-01 06:00:002000-01-02 00:00:00之间是没有任何数据的。

我该怎么做,才能在图中不显示从2000-01-01 06:00:002000-01-02 00:00:00的这些空白数据点呢?

2 个回答

2

一种方法是在绘图之前先进行重采样(按小时重采样):

df3.resample('H').plot()

注意:这样做可以确保在真实值之间有NaN值,这些值不会被绘制出来(而不是被连接起来)。这意味着你在这里存储了更多的数据,这可能会成为一个问题。

2

这似乎在Google的讨论组里讨论了很长一段时间。

Pandas的日内时间序列图表

撰写回答