Pandas数据帧在不均匀的时间段/分钟内重新采样

2024-07-03 06:00:49 发布

您现在位置:Python中文网/ 问答频道 /正文

搜索它,但没有找到解决办法-如果已经有一个sry的问题,但我会感谢一个链接

我有这样一个数据帧(df):

timestamp          value
2016-03-11 07:37:40 24.6018
2016-03-11 07:37:45 24.6075
2016-03-11 07:37:50 24.599
2016-03-11 07:37:55 24.6047
2016-03-11 07:38:00 24.5905
2016-03-11 07:38:05 24.551
...

重要信息:不是在07:40:00而是07:37:40(可能是任何时间)这样的偶数分钟开始,我想重新取样-计算平均值,例如,5分钟内用所用行的最后一个时间戳标记。原始数据的第一个时间戳为2016-03-11 07:37:40的期望结果:

^{pr2}$

我试着用

df.resample('5T',how='mean',label='right')

以及

df.resample('300S',how='mean',label='right')

同样的结果是:

2016-03-11 07:40:00 24.618
2016-03-11 07:45:00 24.675
2016-03-11 07:50:00 24.599
...

它以整分钟为周期进行计算。我找不到合适的方法来纠正这一点。看到了“base”可能是一个选项,但它似乎不是很友好或代码很好。在

任何帮助都将不胜感激。在


Tags: 数据right信息dfvalue链接时间mean
1条回答
网友
1楼 · 发布于 2024-07-03 06:00:49

检查这个我用了滚动,它将滚动到给定的频率,并做数学运算,如求和,平均值等。在这你需要知道开始和结束日期时间值。在

代码:

df.timestamp=pd.to_datetime(df.timestamp)
df.set_index('timestamp',inplace=True)
df = df.rolling('15s').mean()
mask = pd.date_range('2016-03-11 07:37:40','2016-03-11 07:38:05',freq='10S')
df = df.loc[mask]
df

                        value
2016-03-11 07:37:40 24.601800
2016-03-11 07:37:50 24.602767
2016-03-11 07:38:00 24.598067

使用你想要的窗口,而不是“15秒”在滚动以及日期范围内,我用过。让我知道这对你有用。在

相关问题 更多 >