2016-05-12 135 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