【问题标题】:Plotting hourly data with Series.plot()使用 Series.plot() 绘制每小时数据
【发布时间】:2019-03-31 17:21:46
【问题描述】:

我有一个如下所示的 csv 文件:

df = pd.read_csv('book1.csv',  header=1)

    Index   Date Time      DEMAND
    0   2005-03-01 06:30:00 1
    1   2005-03-01 06:45:00 2
    2   2005-03-01 07:00:00 4
    3   2005-03-01 07:15:00 0
    4   2005-03-01 07:30:00 10
    5   2005-03-01 07:45:00 13

我想绘制这个,但是当我调用 df.plot() 时,我得到了错误:

df.plot()

ValueError: view limit minimum -36601.34583333333 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units

我也尝试过以这种方式创建我的时间序列:

pd.Series(data=df['DEMAND'], index=df['Date Time'])

但是结果是数据变成了null:

Date Time
2005-03-01 06:30:00   NaN
2005-03-01 06:45:00   NaN
2005-03-01 07:00:00   NaN
2005-03-01 07:15:00   NaN
2005-03-01 07:30:00   NaN
2005-03-01 07:45:00   NaN
2005-03-01 08:00:00   NaN
2005-03-01 08:15:00   NaN
2005-03-01 08:30:00   NaN

我在找

1) 就这些方法失败的原因提供建议,和/或

2)获得我想要的结果的替代方法。

谢谢!

【问题讨论】:

  • 您的 df 中有两列和一个索引。您希望在 x 轴和 y 轴上拥有哪个部分?

标签: python datetime matplotlib series


【解决方案1】:

我确实想出了一个解决方案:

x = df['Date Time']
y = df['DEMAND']

plt.plot(x,y)

仍然有兴趣找出我的方法存在问题的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 2019-10-15
    • 2011-10-11
    • 2020-05-06
    • 2021-03-09
    • 1970-01-01
    相关资源
    最近更新 更多