gpt4 book ai didi

python - 使用 Pandas 和日期时间格式绘图

转载 作者:太空狗 更新时间:2023-10-29 18:03:30 24 4
gpt4 key购买 nike

我有一个只有两列的数据框,日期和收盘价。我正在尝试使用 df.plot() 绘制它们,但不断收到此错误:

ValueError: view limit minimum -36785.37852 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

我从 matplotlib 中找到了关于此的文档,但其中说明了如何确保格式为日期时间。这是我必须确保格式为日期时间并在尝试绘制之前打印每列的数据类型的代码。

df.Date = pd.to_datetime(df.Date)

print(df['ClosingPrice'].dtypes)
print(df['Date'].dtypes)

这些打印语句的输出是:

float64 datetime64[ns]

我不确定问题出在哪里,因为我在绘图之前正在验证数据类型。这也是数据集的前几行的样子:

日期收盘价
0 2013-09-10 64.7010
1 2013-09-11 61.1784
2 2013-09-12 61.8298
3 2013-09-13 60.8108
4 2013-09-16 58.8776
5 2013-09-17 59.5577
6 2013-09-18 60.7821
7 2013-09-19 61.7788
任何帮助表示赞赏。

最佳答案

EDIT 2 在看到更多人来到这里之后。为了让 python 新手清楚,您应该首先导入 pandas 以使下面的代码起作用:

import pandas as pd

编辑 1:(简短快速回答)

如果³您不想删除原始索引(在阅读下面的原始长答案后这是有道理的)您可以:

df[['Date','ClosingPrice']].plot('Date', figsize=(15,8))

原始和长答案:

首先尝试将索引设置为日期时间列:

df.set_index('Date', inplace=True, drop=True)

只是为了确定,请尝试设置索引数据类型(编辑:这可能不会像您之前那样需要):

df.index = pd.to_datetime(df.index)

然后绘制它

df.plot()

如果这解决了问题,那是因为当您使用 DataFrame 对象的 .plot() 时,X 轴将自动成为 DataFrame 的索引。

如果²您的 DataFrame 有一个 Datetimeindex 和其他 2 列(比如 ['Currency','pct_change_1'])并且您只想绘制其中一个(可能是 pct_change_1) 你可以:

# single [ ] transforms the column into series, double [[ ]] into DataFrame
df[['pct_change_1']].plot(figsize=(15,8))

figsize=(15,8) 中设置图的大小 (width, height)

关于python - 使用 Pandas 和日期时间格式绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52266076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com