Pandas线性插值中数据点绘图的Y轴取值疑问
Pandas线性插值的绘图变量说明
核心结论
当你执行df["Column_4"].interpolate(method='linear')时,Pandas的线性插值默认是基于数据的行位置索引来拟合直线的,而非基于Column_4自身的取值。如果要可视化插值效果:
- 标准的绘图方式中,X轴应为数据的行索引/顺序位置(比如0、1、2...这类代表数据顺序的标识),Y轴则是
Column_4的原始值+插值后的补全值。 - 如果你硬要把
Column_4的取值设为X轴,那Y轴没有固定对应列——这其实不符合插值的逻辑,因为插值的输入维度是行顺序,不是Column_4自身的数值。
具体解释
举个简单例子:
假设你的数据集行索引是0-4,Column_4的原始值为[1, NaN, 3, NaN, 5]。执行插值后,Column_4会被补全为[1, 2, 3, 4, 5]。
这里的插值逻辑是:
- 用索引0(值1)和索引2(值3)拟合直线,计算出索引1的缺失值为2;
- 用索引2(值3)和索引4(值5)拟合直线,计算出索引3的缺失值为4。
如果要基于其他列(比如Column_1)的取值来做线性插值,需要显式指定x参数,示例代码:
df["Column_4"].interpolate(method='linear', x=df["Column_1"])
这时插值才会以Column_1的取值为X轴,Column_4的非缺失值为Y轴拟合直线,此时绘图可以把Column_1设为X轴,Column_4设为Y轴,来展示插值效果。
内容的提问来源于stack exchange,提问作者Apoorva
相关产品推荐
相关产品推荐

