我有一个很大的数据帧,其中包括频道名称,时间,值,更新间隔。它是按ch_name分组的。时间=接收数据时,更新间隔=第一次接收和第二次接收之间的差值(这是遥测数据,其中通道根据其功能以特定的时间速率更新)。
所以我有更新间隔: 1,4,10,20,30,60 (秒)。我需要所有更新间隔等于60秒的数据帧。例如,Channel_X的更新间隔为1秒。所以我需要60秒数据的平均值。(我不需要60秒内的60个数据,我只需要60秒内的1个平均值)等等。如果更新间隔等于4秒,我需要60秒15个值的平均值。请参阅下面的数据帧输出:
ch_name time value interval
167 ADCS.GPS_EPI_-_ECC 2019-09-26 00:00:06 0.001 4.0
442 ADCS.GPS_EPI_-_ECC 2019-09-26 00:00:10 0.001 4.0
548 ADCS.GPS_EPI_-_ECC 2019-09-26 00:00:14 0.001 4.0
752 ADCS.GPS_EPI_-_ECC 2019-09-26 00:00:18 0.001 4.0
916 ADCS.GPS_EPI_-_ECC 2019-09-26 00:00:22 0.001 4.0
... ... ... ... ...
5925943 ADCS.GPS_EPI_-_ECC 2019-09-27 08:59:41 0.001 4.0
5926102 ADCS.GPS_EPI_-_ECC 2019-09-27 08:59:45 0.001 4.0
5926265 ADCS.GPS_EPI_-_ECC 2019-09-27 08:59:49 0.001 4.0
5926432 ADCS.GPS_EPI_-_ECC 2019-09-27 08:59:53 0.001 4.0
5926595 ADCS.GPS_EPI_-_ECC 2019-09-27 08:59:57 0.001 4.0
ch_name time value interval
498 Payload.OBCARM_DCDC_Temp_degC 2019-09-26 00:00:13 5.229 10.0
988 Payload.OBCARM_DCDC_Temp_degC 2019-09-26 00:00:23 5.229 10.0
1324 Payload.OBCARM_DCDC_Temp_degC 2019-09-26 00:00:33 5.229 10.0
1895 Payload.OBCARM_DCDC_Temp_degC 2019-09-26 00:00:43 5.383 10.0
2254 Payload.OBCARM_DCDC_Temp_degC 2019-09-26 00:00:53 5.383 10.0
... ... ... ... ...
5926944 Payload.OBCARM_DCDC_Temp_degC 2019-09-27 09:02:52 6.617 11.0
5926960 Payload.OBCARM_DCDC_Temp_degC 2019-09-27 09:03:02 6.617 10.0
5926979 Payload.OBCARM_DCDC_Temp_degC 2019-09-27 09:03:13 6.617 11.0
5926989 Payload.OBCARM_DCDC_Temp_degC 2019-09-27 09:03:23 6.617 10.0
5927004 Payload.OBCARM_DCDC_Temp_degC 2019-09-27 09:03:34 6.617 11.0
ch_name time value interval
2917 Housekeeping.PDM_0__SW10_Status 2019-09-26 00:01:06 0.0 30.0
4318 Housekeeping.PDM_0__SW10_Status 2019-09-26 00:01:36 0.0 30.0
5713 Housekeeping.PDM_0__SW10_Status 2019-09-26 00:02:06 0.0 30.0
7073 Housekeeping.PDM_0__SW10_Status 2019-09-26 00:02:36 0.0 30.0
8518 Housekeeping.PDM_0__SW10_Status 2019-09-26 00:03:06 0.0 30.0
... ... ... ... ...
5398900 Housekeeping.PDM_0__SW10_Status 2019-09-27 05:57:36 0.0 30.0
5400155 Housekeeping.PDM_0__SW10_Status 2019-09-27 05:58:06 0.0 30.0
5401490 Housekeeping.PDM_0__SW10_Status 2019-09-27 05:58:36 0.0 30.0
5402885 Housekeeping.PDM_0__SW10_Status 2019-09-27 05:59:06 0.0 30.0
5404257 Housekeeping.PDM_0__SW10_Status 2019-09-27 05:59:36 0.0 30.0发布于 2019-09-30 15:33:59
您可以使用pandas.Grouper来执行以下操作:
df.groupby(pd.Grouper(key='time', freq='60min')).mean()https://stackoverflow.com/questions/58163316
复制相似问题