使用精确的开始周期重新采样数据帧

2024-04-25 20:21:38 发布

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

考虑如下数据帧:

time
18:00:00.051563    2575.50
18:00:01.023444    2575.50
18:00:02.000000    2575.50
18:00:03.000000    2575.50
18:00:04.000000    2575.50
18:00:05.000000    2575.50
18:00:06.000000    2575.50
18:00:07.000000    2575.50

我想重采样成2秒的间隔,开始间隔是18:00:00.000000。但是由于我的系列中的第一个数据点是18:00:00.051563,因此生成的bucket也从00.051563开始,而不是从00.00000开始。你知道吗

df.resample('2S', closed='left', label='left', base=0).mean()

time
18:00:00.051563    2575.317742
18:00:02.051563    2575.427632
18:00:04.051563    2575.674342
18:00:06.051563    2575.902778
18:00:08.051563    2576.287037
18:00:10.051563    2576.392857
18:00:12.051563    2576.416667
18:00:14.051563    2576.164286
18:00:16.051563    2576.100000

Tags: 数据dfbase间隔buckettimemeanleft
1条回答
网友
1楼 · 发布于 2024-04-25 20:21:38

实现@piRSquared的代码按预期工作,我重新检查了数据管道,并意识到我的time列类型是TimedeltaIndex,这就是导致重采样中意外行为的原因。你知道吗

TimedeltaIndex源于纯时间字符串的隐式转换。你知道吗

如果你的问题和我的一样,这可能会帮助你:

df['datetime'] = pd.to_datetime(df['date'] + df['time'])

相关问题 更多 >