首页 > 解决方案 > 如何在包含每小时平均值和每小时每个平均值的相应计数的数据帧末尾添加新列。

问题描述

我一直在寻找很多,但找不到我的问题的答案。

我有太阳能电池测量数据。数据有时间戳值,但没有频率。一小时内的值的数量不是恒定的。一个小时内可以出现任意数量的值。所以我正在努力创造:

一世。具有数据每小时平均值的列。

ii. 另一列包含每小时发生的测量计数。这很重要,因为我的时间戳没有固定频率。因此,重要的是要知道为一天中的特定小时计算的平均值是否有 1 个或 2 个或 14 个测量值。

我的数据框图像:

在此处输入图像描述

我的代码:

yr=df.index.year
mon=df.index.month
day= df.index.day
hr = df.index.hour
df.groupby([yr, mon, day, hr])['KP_sensor'].mean()

如何在此数据框的末尾添加两列(平均列和该小时内发生的测量计数)。

标签: pythonpandaspandas-groupby

解决方案


实际上,查看您的问题会更好,aggregate因为您有多个列要取平均值。

yr=df.index.year
mon=df.index.month
day= df.index.day
hr = df.index.hour
grouped_data = df.groupby([yr, mon, day, hr])
new_data = grouped_data.agg('mean')
new_data['counts'] = grouped_data.transform('count')

推荐阅读