gpt4 book ai didi

python - 如何提取小时:minute from a datetime stamp in Python

转载 作者:行者123 更新时间:2023-12-01 01:08:33 25 4
gpt4 key购买 nike

我的数据框如下所示:df=

                          POA                ...          Inverter efficiency
2019-01-25 08:00:00 20.608713 ... 0.708626
2019-01-29 08:00:00 200.250137 ... 0.017787
2019-01-29 08:30:00 347.699615 ... 0.000000
2019-01-29 09:00:00 492.822662 ... 0.000000
2019-01-29 09:30:00 620.336243 ...
.
.
2019-03-07 13:00:00 1151.468384 ... 1.067493
2019-03-07 13:30:00 1119.876831 ... 2.311577
2019-03-07 14:00:00 1038.760864 ... 3.395081

我想绘制全天的 24 小时图。我的代码

plot(df.index.hour,df['POA'])

结果是:

Hourly data of all days

但是,08:30、09:30、...等有一个数据,但没有反射(reflect)在剧情中。事实上,这些中间小时数据点是与 08、09 点等数据结合在一起的。所以,我的问题是,如何在绘图上显示 08.30、09.30、...等数据? (看起来我必须从同一日期时间提取小时和分钟)

我接受的以下答案给出了以下情节,这就是我想要的。但是,x 轴刻度是聚集在一起的。它们并不像我上面的第一个图中那样出现。如何纠正第二个图中的 x 轴刻度?:'

enter image description here

最佳答案

#rng = pd.date_range('1/5/2018 00:00', periods=5, freq='35T')
#df = pd.DataFrame({'POA':randint(1, 10, 5)}, index=rng)
labels = df.index.strftime('%H:%M')
x = np.arange(len(labels))
plt.plot(x, df['POA'])
plt.xticks(x, labels)

步骤:

  • labels = df.index.strftime('%H:%M') => 将日期时间转换为“小时:分钟”格式以用作 x 标签
  • x = np.arange(len(labels)) => 为 matplotlib 创建虚拟 x 轴
  • plt.plot(x, df['POA']) => 绘制图
  • plt.xticks(x, labels) => 将 x 标签替换为日期时间

假设:日期时间索引已排序,如果没有排序,图表将会困惑。如果索引未按排序顺序,则在绘制正确结果之前对其进行排序。

我们可以通过在 df.index.strftime 中使用适当的字符串格式化程序来进一步增强 x 轴以包括秒、日期等

跳过 x-ticks 以避免棒状 x 标签的解决方案

#rng = pd.date_range('1/5/2018 00:00', periods=50, freq='35T')
#df = pd.DataFrame({'POA':randint(1, 10, 50)}, index=rng)
labels = df.index.strftime('%H:%M')
x = np.arange(len(labels))
fig, ax = plt.subplots()
plt.plot(x, df['POA'])
plt.xticks(x, labels)
skip_every_n = 10
for i, x_label in enumerate(ax.xaxis.get_ticklabels()):
if i % skip_every_n != 0:
x_label.set_visible(False)

关于python - 如何提取小时:minute from a datetime stamp in Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55092403/

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