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

如何在Python中基于DataFrame对二维网格进行插值计算?

使用DataFrame数据进行二维网格插值计算

步骤1:明确数据结构

你的数据属于规则网格数据:

  • X轴坐标:[0, 10, 20](对应DataFrame的行索引)
  • Y轴坐标:[500, 1000, 1400, 1600](对应DataFrame的列名)
  • 网格点对应的数值:表格中的二维数值数组

步骤2:实现插值计算

针对规则网格,推荐使用scipy.interpolate.RegularGridInterpolator进行高效插值,也可根据需求选择其他插值方法。以下是完整实现代码:

import pandas as pd
import numpy as np
from scipy.interpolate import RegularGridInterpolator

# 构造目标DataFrame
data = {
    500: [78.0, 78.8, 79.6],
    1000: [86.4, 87.0, 87.5],
    1400: [89.1, 89.6, 90.0],
    1600: [90.0, 90.5, 90.9]
}
df = pd.DataFrame(data, index=[0, 10, 20])

# 提取网格坐标与对应数值
x_coords = df.index.values
y_coords = df.columns.values
grid_values = df.values

# 创建插值器,可选插值方法:linear/nearest/cubic
interpolator = RegularGridInterpolator(
    points=(x_coords, y_coords),
    values=grid_values,
    method='linear'
)

# 计算目标点[X=15, Y=750]的插值结果
target_point = np.array([15, 750])
interp_result = interpolator(target_point)

print(f"坐标[15, 750]处的插值结果:{interp_result}")

关键说明

  • RegularGridInterpolator要求输入的坐标数组单调有序,你的数据完全符合该条件
  • 插值方法参数method可按需选择:
    • linear:线性插值(默认,平衡精度与计算效率)
    • nearest:最近邻插值(速度最快,无平滑效果)
    • cubic:三次样条插值(精度最高,计算量稍大)

运行代码后,线性插值下目标点的结果约为82.45。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:40:49