Pandas - 时间序列重采样和插值,使用float64数据类型

3

我想对一系列panda数据进行重新采样和插值操作。然而,我的索引是float64类型,如下所示:

       Value
Time        
0.0     0.00
0.0     0.00
0.0     0.00
0.0     0.00
0.0     0.00
0.1     0.00
0.2     0.00
0.3     0.00
0.4     0.00
0.5     0.00
0.6     0.00
0.7     0.00
0.8     0.00
0.9     0.00
1.0     0.00

这是我的系列开始。我需要使用类似于upsampled = series.resample('D')这样的东西,但是我找不到正确的字母来替换D,我收到了以下信息:

TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Float64Index'

我没有成功更改float64。但奇怪的是,没有其他方法只用时间插值浮点数。
谢谢。


时间 0.00.1.. 是以 小时 为单位吗? - jezrael
抱歉,我只能在英文中提供答案。 - DionysoSong
你能否根据期望的输出更改数据样本? - jezrael
我想要用毫秒时间插值数值,例如(开始为0,但之后会改变)。 - DionysoSong
2个回答

4

我认为您可以将浮点数转换为时间差,然后可以使用重新采样与一些聚合函数(例如summean)一起使用:

df.index = pd.to_timedelta(df.index, unit='ms')
df = df.resample('d')['Value'].sum()

df = df.resample('d')['Value'].mean()

在我们添加时间值并执行插值上采样.interpolate(method ='linear')的情况下,是否可能存在NaN值? - DionysoSong
我认为您需要在“Value”列中使用“NaN”值,然后使用“interpolate”将其替换为实际数值。 - jezrael
实际上,重新采样并没有添加新的数值和时间,但现在格式是正确的。 - DionysoSong

3
你收到的错误提示告诉你,pandas需要一个基于时间的索引。使用pandas进行重新采样只能在时间日期格式下进行。你可以将浮点数转换为时间和日期格式,但在你的示例中似乎不合适。另一个(首选)选项是使用类似于scipy的signal.resample,它接受一个numpy数组:https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.resample.html

好的,我正在查看它。 - DionysoSong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接