对面板数据缺失值采用拉格朗日插值法

该博客主要介绍了如何处理数据集中的缺失值。首先,通过读取GBK编码的CSV文件并打印数据框,展示了数据的基本情况。然后定义了一个函数`na_count`来计算每列的缺失值数量和比例。接着,利用`scipy.interpolate.lagrange`进行插值填充缺失值,遍历数据框的每一列和每一行,对空值进行插值处理。最后,将处理后的数据保存为Excel文件,确保所有数据都统一为同一格式。
import pandas as pd
inputfile = "D:\pythonProject\数据.csv"
train_data = pd.read_csv(inputfile, encoding = 'gbk') #这里如果用utf-8会显示解码错误
print(train_data)
def na_count(data):
    data_count = data.count()              
    na_count = len(data) - data_count            
    na_rate = na_count/len(data)                 
    result = pd.concat([data_count,na_count,na_rate],axis = 1)   
    return result
import pandas as pd 
from scipy.interpolate import lagrange   
def ployinterp_column(s,n,k=5):
    y = s[list(range(n-k,n)) + list(range(n+1,n+1+k))] 
    y = y[y.notnull()] 
    return lagrange(y.index,list(y))(n)

for i in train_data.columns:
    for j in range(len(train_data)):
        if (train_data[i].isnull())[j]:  
            train_data[i][j] = ployinterp_column(train_data[i],j)
outputfile = "D:\pythonProject\数据1.xls"
train_data.to_excel(outputfile)  

需要先将所有数据调为统一格式

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值