首页 新闻 会员 周边 捐助

如何用pandas的apply方法,进行多列的数据处理

0
[已关闭问题] 关闭于 2019-06-25 07:52

手头一组数据,需要进行缺失值填充。要求是:对缺失数量超过数据量一半以上的,填充数值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)

问题2:对于传入两个以上的参数,函数的第一个参数,代表数据自身,即x =data,而对于i则应该是data中的每列。这样的话,axis=1有没有必要传入?

但是,不论是否传入axis=1,代码运行均会报错。。问题到底出在哪里

数据格式如下

老笨啊的主页 老笨啊 | 初学一级 | 园豆:6
提问于:2019-06-24 17:52
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册