熊猫插值是填充 nan 而不是插值

Posted

技术标签:

【中文标题】熊猫插值是填充 nan 而不是插值【英文标题】:Pandas interpolate is filling nan rather than interpolating 【发布时间】:2021-11-12 14:34:27 【问题描述】:

我有一个数据帧,它被重新采样到更高的采样率,比如从 8hz 到 16hz。使用

new_df = new_df.resample('62.5L').ffill()

我没有使用ffill(),而是尝试使用插值

interpolated = new_df.interpolate(method='linear', axis=0)

但新数据框填充的是“nan”而不是插值

任何人都可以帮助我在不填充 nan 的情况下进行插值!

【问题讨论】:

感谢您的回复。但是以下代码有效。如果它是数字数据,我必须将每个特定列转换为浮点数,然后使用插值命令。对于我使用填充的文本列。 1. 数值数据:df.iloc[:,1,2,3].astype(float).interpolate() 2. 文本数据:ips.iloc[:,bbbb].ffill() 【参考方案1】:
interpolated = new_df.interpolate(method='time', axis=0)

这应该可行。我知道它不是线性的(我不确定为什么它给出NaN)但是看到每个时间戳之间的差异是相等的。这应该可以满足您的需求。

【讨论】:

感谢您的回复。但是以下代码有效。如果它是数字数据,我必须将每个特定列转换为浮点数,然后使用插值命令。对于我使用填充的文本列。 1. 数值数据:df.iloc[:,1,2,3].astype(float).interpolate() 2. 文本数据:ips.iloc[:,bbbb].ffill()

以上是关于熊猫插值是填充 nan 而不是插值的主要内容,如果未能解决你的问题,请参考以下文章

python线性插值解析

matlab 如何用插值给NAN赋值

Python / Pandas:按顺序填充 NaN - 线性插值 --> ffill --> bfill

Pandas 内插返回的 NaN

用熊猫插值时如何控制X和Y

matlab 如何用插值给NAN赋值