以10分钟为间隔对DataFrame进行分组

时间:2019-05-16 14:23:49

标签: pandas pandas-groupby mean

我发现了这个:Group DataFrame in 5-minute intervals。效果很好,但是我的问题是我有第二个值Altitude,这很重要,因此重采样代码无效。

我想为不同的海拔高度创建10分钟的平均值。数据集如下:

enter image description here

有没有一种方法可以通过groupby创建它?通过重新采样,我得到了:

enter image description here

问题在于,我在海拔高度上也很卑鄙。

1 个答案:

答案 0 :(得分:0)

您可以使用Series.dt.floor自己组成小组,除海拔高度外,还可以将其分组:

样本数据

import pandas as pd
import numpy as np
df = pd.DataFrame({'Timestamp': pd.date_range('2019-04-04', freq='1.345min', 
                                              periods=20),
                   'Altitude': [1, 2]*10,
                   'val1': np.random.randint(1, 10, 20)})

df.groupby([df.Timestamp.dt.floor('10min'), 'Altitude']).mean()

                                  val1
Timestamp           Altitude          
2019-04-04 00:00:00 1         5.000000
                    2         3.250000
2019-04-04 00:10:00 1         5.000000
                    2         4.333333
2019-04-04 00:20:00 1         6.500000
                    2         5.000000