gpt4 book ai didi

python - 与 Pandas 数据框中的日期绘图一致

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:43 25 4
gpt4 key购买 nike

Pandas 有时会决定以不同的方式绘制带有时间索引的数据帧。

我正在使用 df.plot() 绘制一个 pandas timeseries DataFrame 并为不同的列获取不同的行为,如日期的显示方式,但不明白为什么。我正在绘制 6 月 18 日的数据,所以有时 x 轴会显示 06:00、08:00 等时间,有时会以非常困惑的方式显示日期/小时:06-18 06、06-18 08, ...为什么 ? same df, different columns, same timeindex

最佳答案

让我们创建一个最小的示例。数据等间隔,中间恰好有 5 小时(5h00、10h00、15h00)。

import pandas as pd
import matplotlib.pyplot as plt

index = pd.to_datetime(["2019-09-11 05:00:00",
"2019-09-11 10:00:30",
"2019-09-11 15:00:00"])

pd.DataFrame({"x" : [1,2,4], "y" : [3,4,4]}, index=index).plot()
plt.show()

这将导致这个情节:

enter image description here

现在,让我们向其中一个日期时间添加 30 秒,

index = pd.to_datetime(["2019-09-11 05:00:00",
"2019-09-11 10:00:30", # <-- added 30 seconds here
"2019-09-11 15:00:00"])

现在数据不再等距,结果是这样的:

enter image description here

所以在后一种情况下 pandas does not consider it as "ts_plot" . “ts”大概代表时间序列,但有人可能会争辩说两者都是时间序列。但当然后一种情况不能重新采样 - 所以这似乎是潜在的区别。
不幸的是,pandas 将格式化程序与这种时间序列联系在一起,无法手动更改。

通过将 x_compat=True 放入 plot 函数中,您可以获得一致的结果。这将确保不会独立于数据使用类似“ts”的轴。总会导致第二种情节。

df.plot(x_compat=True)

这样做的好处是您可以通过 matplotlib.dates formatters and locators 手动更改那些正常绘图的格式。 .

关于python - 与 Pandas 数据框中的日期绘图一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57884594/

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