如何解决所有列的 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")
但它只是将第一个数据点的值复制到所有其他重新采样的数据点。
我不想聚合重采样的值,所以我不想调用重采样器的 mean
或 last
方法。我基本上想为我拥有的原始条目上的每个属性拟合一行,然后提取与每个重新采样的 time_delta
相关联的值(现在相隔 0.01 秒)。
我怎么能这样做?我假设我可以以某种方式将每个初始时间步长-属性组合引入一个系列,然后在 Series
对象上运行插值,这似乎可以满足我的要求,然后将结果合并回单个 DataFrame
,但还有更好的选择吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。