我有使用分钟分辨率的日期时间索引的数据.我想看看使用分钟分辨率的人一个月中一天的平均"轮廓"是多少.

数据集格式如下:

                               Power
2019-01-01 11:43:01+02:00   9.223261
2019-01-01 11:44:01+02:00  14.304057
2019-01-01 11:45:01+02:00  28.678970
2019-01-01 11:46:01+02:00  35.143512
2019-01-01 11:47:01+02:00  24.431278
...                              ...
2019-12-31 15:05:14+02:00  -0.075000
2019-12-31 15:06:14+02:00  -0.075000
2019-12-31 15:07:14+02:00  -0.075000
2019-12-31 15:08:14+02:00  -0.075000
2019-12-31 15:09:14+02:00  -0.075000

要绘制按小时计算的每月平均日功率配置文件,我执行了以下操作

plt.plot(df_jul.groupby(df_jul.index.hour)[['Power']].mean(), label=('July'))

其中df_jul是上述数据的子集,仅包括7月份的数据.

                              Power
2019-07-01 05:28:15+03:00  2.561204
2019-07-01 05:29:15+03:00  2.749837
2019-07-01 05:30:15+03:00  2.963823
2019-07-01 05:31:15+03:00  3.190177
2019-07-01 05:32:15+03:00  3.374277
...                             ...
2019-07-31 21:12:02+03:00  2.311575
2019-07-31 21:13:02+03:00  2.310808
2019-07-31 21:14:02+03:00  2.415743
2019-07-31 21:15:02+03:00  2.485820
2019-07-31 21:16:02+03:00  1.874091

得到的数字如下所示:

Example plot

那么,要获得与上图相同的剖面图,但使用分钟分辨率,最佳方法是什么?

我试着按分钟分组,但结果是每月平均一小时.我也认为我可以只通过计算器和做平均计算,但我觉得有一个更容易的方法,我错过了.

Here is the correct result plot enter image description here

推荐答案

您应该以所需的频率使用resample.

如果要绘制一个月中的平均日期,可以将所有日期转换为月底(pd.offsets.MonthEnd),然后是resample:

(df_jul.set_axis(df_jul.index + pd.offsets.MonthEnd(0))
       .resample('2min')['Power'].mean()
       .plot(marker='o')
)

或者用你原来的groupby的变种:

df_jul.groupby(df_jul.index.floor('1min').time)['Power'].mean().plot()

enter image description here

如果要绘制完整的月份:

df_jul.resample('1min')['Power'].mean().plot(marker='o')

输出:

enter image description here

Python相关问答推荐

用Pillow创建8位压缩的RB

使用Pydantic模型查找其他信息

tempfile.mkstemp(text=.)参数实际上是什么?

Pandas基于另一列的价值的新列

如何输入提示抽象方法属性并让mypy高兴?

定义同侪组并计算同侪组分析

使用Python OpenCV的文本检测分割

Tkinter -控制调色板的位置

使用多个性能指标执行循环特征消除

如何使用Python中的clinicalTrials.gov API获取完整结果?

即使在可见的情况下也不相互作用

沿着数组中的轴计算真实条目

在线条上绘制表面

Python键入协议默认值

如何在WSL2中更新Python到最新版本(3.12.2)?

在np数组上实现无重叠的二维滑动窗口

Stacked bar chart from billrame

Django REST Framework:无法正确地将值注释到多对多模型,不断得到错误字段名称字段对模型无效'<><>

字符串合并语法在哪里记录

isinstance()在使用dill.dump和dill.load后,对列表中包含的对象失败