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

Python 使用精确的开始周期对数据帧重新采样,python,pandas,Python,Pandas,考虑如下所示的数据帧: 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秒间隔,开始间隔

考虑如下所示的数据帧:

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
,因此生成的存储桶也从
00.051563
开始,而不是
00.00000

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


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

TimedeltaIndex
源于纯时间字符串的隐式转换

如果您的问题与我的类似,这可能会帮助您:

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

我无法重现这个问题。我从18:00开始获取索引。版本
0.20.3
@piRSquared您能发布您的代码吗?
来自熊猫导入时间戳;pd.系列({Timestamp('2017-10-31 18:00:00.051563'):2575.5,Timestamp('2017-10-31 18:00:01.023444'):2575.5,Timestamp('2017-10-31 18:00:02'):2575.5,Timestamp('2017-10-31 18:00:03'):2575.5,Timestamp('2017-10-31 18:00:05'):2575.5,Timestamp('2017-10-10-31 18:00:05'):2575.5,Timestamp('('2017-10-31 18:00:07'):2575.5})。重采样('2S')。平均值()
@piRSquared这有助于我找到答案。谢谢!
df['datetime'] = pd.to_datetime(df['date'] + df['time'])