手头一组数据,需要进行缺失值填充。要求是:对缺失数量超过数据量一半以上的,填充数值0。而对缺失数量少于数据总量一半的,按照线性插值填充。
我的代码如下:
def insert(x,i):
if x[i].isnull().sum() > x.shape[0]/2:
x[i] = x[i].fillna(0)
else:
x[i] = x[i].interpolate(method='linear',limit_direction = 'both')
return x # 问题1:这里需要返回的是 x[i] 还是x呢??
for i in data.columns[1:]:
data = data.apply(insert,args = (i,),axis=1)
但是,不论是否传入axis=1,代码运行均会报错。。问题到底出在哪里
数据格式如下