所有列的 Pandas DataFrame 线性插值

问题描述

我有一个看起来像这样的 Pandas DataFrame df

                      location_id    attr1     attr2
time_delta                                                  
0 days 00:00:00               8.0  0.67739  0.609226
0 days 00:00:00.013436        8.0  0.68721  0.619355
0 days 00:00:00.015436        8.0  0.69741  0.619355
0 days 00:00:00.017436        8.0  0.71632  0.626419
0 days 00:00:00.019436        8.0  0.76437  0.637783
0 days 00:00:00.021436        8.0  0.72739  0.638984

time_delta一个 timedeltaIndex 并且它是我的 DataFrame 对象的唯一索引。

我想重新采样这个点数据集,使每个重新采样的点彼此相距 0.01 秒。 为了计算新的重采样数据点的属性值,我想对每个属性应用线性插值,使用 time_delta 轴作为每个重采样数据点的标识符。

我尝试按照教程 here 进行操作,它们获得了相同的所需行为,但在 Pandas 系列上,即只有一个属性resample 方法的行为对于 DataFrame 对象是不同的,因为它返回一个 Resampler 对象。 我尝试使用“线性”方法参数调用结果 interpolate 对象的 Resampler 方法,如下所示:

df.resample(f"0.01S",axis="index").interpolate(method="linear")

但它只是将第一个数据点的值复制到所有其他重新采样的数据点。

我不想聚合重采样的值,所以我不想调用重采样器的 meanlast 方法。我基本上想为我拥有的原始条目上的每个属性拟合一行,然后提取与每个重新采样的 time_delta 相关联的值(现在相隔 0.01 秒)。

我怎么能这样做?我假设我可以以某种方式将每个初始时间步长-属性组合引入一个系列,然后在 Series 对象上运行插值,这似乎可以满足我的要求,然后将结果合并回单个 DataFrame ,但还有更好的选择吗?

解决方法

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

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

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