繁体   English   中英

为什么 Parse_Dates 在 Python 中给我错误的结果?

[英]Why does Parse_Dates give me the wrong results in Python?

我正在尝试使用 Matplotlib 绘制时间序列图。 我有一个 2 列 CSV 文件,其中包含股票的日期和收盘价(日期的格式为:“31/07/2020”。

首先,我解析我的日期列以使其成为日期时间列表。 然后我通过以下代码绘制我的数据:

data = pd.read_csv('data.csv', parse_dates=['DATE'])

date = data['DATE']
stock1 = data['GEN_ELECTRIC']
stock2 = data['NETFLIX']

plt.figure()
plt.plot(date, stock1)
plt.savefig('Wrong.png')

我附上了名为“Wrong.png”的图表。 如果我省略 parse_dates,我会得到一个正确的图形,称为“Correct.png”。

我的问题是,'Wrong.png' 的 x-ticks 只有年份,而 Python 知道它在谈论日期。 使用正确的版本,情况并非如此。 此外,“正确”版本还显示月份和日期,这是不必要的。 有谁知道,为什么我得到一个错误的图表? 我将如何解决这个问题?

附注。 不要介意在正确的.png 中重叠的 x 轴,我可以用 plt.locator 解决这个问题。

任何帮助,将不胜感激。 提前致谢!

错误的

正确的

parse_dates默认格式不是欧洲风格的 DD/MM/YYYY。 如果您的第一行是 1/7/2020,它可能会将其解释为 1 月 7 日。 稍后,当遇到 30/07/2020 时, parse_dates 会遇到问题并返回对象数据类型。 要正确使用 parse_dates,请将dayfirst=True属性添加到 read_csv。 这是声明 DD/MM 格式的正确方法。 然后 matplotlib 应该可以很好地处理其余部分

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM