You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对Pandas DataFrame中某一列的指定片段进行插值

实现思路与代码示例

核心思路

你需要对指定行范围(第2到第4行)内的待插值行做线性插值,Pandas的interpolate()方法可直接实现该需求,关键是精准锁定目标行范围并指定插值方法。

具体步骤与代码

  1. 先构造出修改后的DataFrame(对应你提供的第二张图):
import pandas as pd
import numpy as np

# 构造修改后的DataFrame
df = pd.DataFrame({
    'Time': [0, 1, 2, 3],
    'A': [1, 5, np.nan, 11],
    'B': [2, 8, np.nan, 14],
    'C': [3, 11, np.nan, 17]
})
  1. 对第2到第4行(Pandas默认0索引,对应索引1到3的行)执行插值:
# 仅在索引1到3的行范围内,按列方向做线性插值
df.loc[1:3] = df.loc[1:3].interpolate(method='linear', axis=0)
  1. 执行后得到的结果与目标一致:
Time     A     B     C
0     0   1.0   2.0   3.0
1     1   5.0   8.0  11.0
2     2   8.0  11.0  14.0
3     3  11.0  14.0  17.0

关键说明

  • interpolate(method='linear'):默认线性插值,会根据上下行数值自动计算中间行的插值结果,完全匹配你的需求。
  • loc[1:3]:精准锁定需要插值的行范围,避免改动其他行的数据。
  • 若你的DataFrame使用非连续数字索引,也可通过行标签指定范围,比如df.loc['行标签2':'行标签4']。

内容的提问来源于stack exchange,提问作者Harry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 13:57:05