【发布时间】:2017-05-06 06:24:22
【问题描述】:
我有一个数据集:
367235 419895 992194
1999-01-11 8 5 1
1999-03-23 NaN 4 NaN
1999-04-30 NaN NaN 1
1999-06-02 NaN 9 NaN
1999-08-08 2 NaN NaN
1999-08-12 NaN 3 NaN
1999-08-17 NaN NaN 10
1999-10-22 NaN 3 NaN
1999-12-04 NaN NaN 4
2000-03-04 2 NaN NaN
2000-09-29 9 NaN NaN
2000-09-30 9 NaN NaN
当我绘制它时,使用plt.plot(df, '-o') 我得到这个:
但我想要的是每列的数据点连接成一条线,如下所示:
我了解 matplotlib 不会连接由 NaN 值分隔的数据点。我查看了所有用于处理丢失数据的选项here,但它们基本上都会歪曲数据框中的数据。这是因为数据框中的每个值都代表一个事件;如果我尝试用标量值替换 NaN 或使用 interpolate 选项,我会得到一堆实际上不在我的数据集中的点。下面是 interpolate 的样子:
df_wanted2 = df.apply(pd.Series.interpolate)
如果我尝试使用dropna,我会丢失数据框中的整行\列,而这些行包含有价值的数据。
有人知道连接我的点的方法吗?我怀疑我需要从数据帧中提取单个数组并绘制它们,就像here 给出的建议一样,但这似乎需要做很多工作(而且我的实际数据帧要大得多。)有人有解决方案吗?
【问题讨论】:
标签: python pandas matplotlib plot