2016-05-12 101 views
1

我有许多列的数据帧的一个子集,说:大熊猫替换空值的列

df: 
name salary age title 
John  100 35 eng 
Bill  200 NaN adm 
Lena  NaN 28 NaN 
Jane  120 45 eng 

我想在薪水和年龄来代替空值,但是没有在其他列。我知道我可以做这样的事情:

u = df[['salary', 'age']] 
df[['salary', 'age']] = u.fillna(-1) 

但是,这似乎简洁,因为它涉及复制。有没有更有效的方法来做到这一点?

回答

3

试试这个:

df.loc[:, ['salary', 'age']].fillna(-1, inplace=True) 
+0

感谢@ piRSquared的答案,这里是我一直在寻找最终的答案: df.loc [:,['salary','age']]。fillna(-1,inplace = True) – breezymri

1

它是不是很漂亮,但它的工作原理:

df.salary.fillna(-1, inplace=True) 
df.age.fillna(-1, inplace=True) 
df 
>>> name salary age title 
    0 John 101.0 35.0 eng 
    1 Bill 200.0 -1.0 adm 
    2 Lena -1.0 28.0 NaN 
    3 Jane 120.0 45.0 eng