在一个时间索引范围内绘制一个DataFrame

时间:2019-01-18 20:51:34

标签: python pandas matplotlib plot

我是Python和大熊猫的新手。

我有一个数据集作为DataFrame加载到Python中。 DataFrame的索引是格式为“ 2018-01-01 00:00:00”的时间。我的数据集范围从“ 2018-01-01 00:00:00”到“ 2018-12-31 23:59:59”。数据列的列名称为“ X”。

我可以使用matplotlib绘制整个数据集:

plt.plot(data.index, data["X"])

但是,我想绘制时间序列的不同部分:1个月,6个月,2天,3秒等。

最好的方法是什么?

谢谢

2 个答案:

答案 0 :(得分:1)

如果您想绘制一个月,可以这样做

data.loc['2018-02',"X"].plot()

6个月

data.loc['2018-02':'2018-08',"X"].plot()

相同的逻辑适用于其他范围

答案 1 :(得分:0)

您可能需要对索引再执行一个处理步骤,以确保您要处理的是日期时间对象而不是字符串。

new_data = (
    data
    .assign(datetime=lambda df: pandas.to_datetime(df.index))
    .set_index('datetime')
)

new_data["X"].plot()

这应该使我们真正接近您想要的内容,但是我尚未在具有您日期格式的数据上对其进行过测试。