一列中重新采样最大值,而另一列中保持关联

问题描述

我目前使用1分钟的采样采集了一组振动数据,目前正在尝试将数据重新采样为5分钟的块。

我的数据框在所有3个XYZ轴上都具有相同的参数,但是为了简化起见,我只会显示X。

我的数据框:month_night_df如下所示:

                        Measurement Time   MAX_X_APW    X_PPV  X_VDV     X_CF  X_DF
Start Time
2020-08-04 23:00:06     0 days 00:01:00    0.00025      0.04   0.00027   3.5   0.5
2020-08-04 23:01:06     0 days 00:01:00    0.00021      0.03   0.00026   3.0   0.5
2020-08-04 23:02:06     0 days 00:01:00    0.00023      0.04   0.00025   3.5   0.5
2020-08-04 23:03:06     0 days 00:01:00    0.00025      0.04   0.00028   3.8   0.5
2020-08-04 23:04:06     0 days 00:01:00    0.00024      0.04   0.00027   3.5   0.5
2020-08-04 23:05:06     0 days 00:01:00    0.00029      0.04   0.00028   4.3   1.5
2020-08-04 23:06:06     0 days 00:01:00    0.00023      0.03   0.00027   3.3   0.5
2020-08-04 23:07:06     0 days 00:01:00    0.00022      0.04   0.00028   3.3   1.0
2020-08-04 23:08:06     0 days 00:01:00    0.0002       0.03   0.00025   3.0   0.5
2020-08-04 23:09:06     0 days 00:01:00    0.00024      0.04   0.00027   3.6   0.5
...

我希望将代码重新采样为5分钟的块,每列具有指定的重新采样方法,即:

测量时间:总结

MAX_X_APW:每5个1分钟采样集中的最大值

X_PPV:如上MAX_X_APW

VDV:总结为5分钟,具体为(sum(each1minvalue ** 4)) ** 0.25

X_CF和X_DF:我需要程序返回与最大MAX_X_APW值关联的CF(波峰因数)和DF(主导频率)。这是我遇到问题的地方。

因此,仅考虑MAX_X_APW,X_CF和X_DF的新重采样数据帧的示例将是:

                        MAX_X_APW    X_CF     X_DF
Start Time
2020-08-04 23:00:00     0.00025      3.5      0.5
2020-08-04 23:05:00     0.00029      4.3      1.5

值得注意的是,在上面的示例中,在23:00-23:04之间有两行MAX_X_APW为0.00025。关联的CF和DF取哪一个无关紧要,只取其中之一即可。

这是我目前的代码

def VDV(array_like):
    return ((np.sum(array_like ** 4)) ** 0.25)

#resample the data using specific summing techniques for each axis
resample = month_night_df.resample('300s').agg(
    {'Measurement Time': np.sum,'MAX_X_APW': np.max,'X_PPV': np.max,'X_VDV':VDV})
 

这对于其中的值当前非常有效。但是我对于如何获得CF和DF的正确值一无所知。我尝试了与VDV类似的方法,该方法可以将VDV输出到外部函数,但是我无法弄清楚如何正确格式化代码输出所需的内容

还有另外两个与我的非常相似的stackoverflow问题,但是我无法让他们的方法我有用。它们是herehere

理想情况下,我希望我的解决方案能够在我的.agg字典中实现,以便进行如上所述的重新采样,但是,如果需要的话,我不介意一个不太整洁的解决方案,我会形成一个新的df并将其连接到我的重新采样一个

请告知我是否需要进一步的详细信息,

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)