Python Pandas 数据插值:使用 Lagrange 插值法填充缺失值
import pandas as pd
from scipy.interpolate import lagrange
data = sjy_data
data.loc[(data['businessclassification'] < 0) | (data['businessclassification'] > 200), 'businessclassification'] = None
def ployinterp_column(s, n, k=5):
    if n < k:
        y = s[n+1:n+1+k]
    else:
        y = s[n-k:n] + s[n+1:n+1+k]
        y = y[y.notnull()] 
    return lagrange(y.index, list(y))(n) 
for i in data.columns:
    for j in range(len(data)):
        if pd.isnull(data[i][j]): 
            data[i][j] = ployinterp_column(data[i], j)
data
代码说明:
- 导入库: 导入 
pandas和scipy.interpolate.lagrange库。 - 数据准备: 加载数据到 
data变量中。代码中假设数据已经存在,并命名为sjy_data。 - 数据清理: 将 
businessclassification列中小于 0 或大于 200 的值设置为None。 - 定义插值函数: 
ployinterp_column函数用于计算指定列的指定行处的插值值。- 参数:
s: 需要插值的列数据。n: 需要插值的行的索引。k: 用于插值的周围数据点的数量,默认值为 5。
 - 返回值:插值后的值。
 
 - 参数:
 - 循环遍历数据: 使用双重循环遍历所有列和行,如果遇到缺失值,则使用 
ployinterp_column函数进行插值。 - 输出结果: 最后输出插值后的 
data变量。 
注意:
- 本代码仅用于演示插值方法,实际使用时可能需要根据具体数据特点进行调整。
 - 插值方法的选择需要根据数据类型和数据特点进行选择。Lagrange 插值法适合于数据点之间存在平滑变化的情况。
 - 如果数据中存在较多缺失值,建议使用其他更 robust 的插值方法。
 
原文地址: https://www.cveoy.top/t/topic/8hb 著作权归作者所有。请勿转载和采集!