使用panda根据数据帧中的列聚合时间戳字段



我正在尝试将时间戳字段与另一个包含多个字段的列聚合为1小时间隔。

数据集-

df=pd.read_excel("<....>.xlsx")
df.head(10)
timestamp                   device              value
1   2021-01-31 01:02:33+00:00   transPRD-client2    0.27
2   2021-01-31 01:04:34+00:00   transPRD-data3      2.41
5   2021-01-31 01:07:38+00:00   transPRD-client2    0.31
6   2021-01-31 01:09:39+00:00   transPRD-data3      2.20
9   2021-01-31 01:12:38+00:00   transPRD-client2    0.33
10  2021-01-31 01:14:39+00:00   transPRD-data3      1.70
13  2021-01-31 01:17:38+00:00   transPRD-client2    0.23
14  2021-01-31 01:19:39+00:00   transPRD-data3      1.89
17  2021-01-31 01:22:41+00:00   transPRD-client2    0.18
18  2021-01-31 01:24:41+00:00   transPRD-data3      1.62
21  2021-01-31 01:27:41+00:00   transPRD-client     0.22

我尝试了下面的代码,时间戳以5分钟的间隔进行聚合,但唯一的值出现在";设备";柱未在其他设备上聚合数据。

df1=df.set_index('timestamp').resample("1h").max().reset_index()
df1
timestamp                        device         value
0   2021-01-31 01:00:00+00:00   transPRD-data3  2.90
1   2021-01-31 02:00:00+00:00   transPRD-data3  2.83
2   2021-01-31 03:00:00+00:00   transPRD-data3  3.64
3   2021-01-31 04:00:00+00:00   transPRD-data3  2.06
4   2021-01-31 05:00:00+00:00   transPRD-data3  1.84

您可以使用重采样为聚合添加groupby

df1=df.set_index('timestamp').groupby('device')['value'].resample("1h").max().reset_index()
print (df1)
device                 timestamp  value
0   transPRD-client 2021-01-31 01:00:00+00:00   0.22
1  transPRD-client2 2021-01-31 01:00:00+00:00   0.33
2    transPRD-data3 2021-01-31 01:00:00+00:00   2.41

最新更新