如何根据另一列的值替换列的NaN值?

时间:2015-10-03 08:20:08

标签: python python-2.7 pandas dataframe nan

我想根据列Idx的值替换列标题的NaN值。如果Idx等于1,则NaN必须替换为0,如果Idx等于0,则NaN Title必须等于1.

Title   Idx
NaN     0
0       1
1       0
NaN     0
NaN     1

我试过了:

df.loc[df['Title'].isnull(), 'Title'] = 0

但当然它总是放0.我怎么能在这里添加条件?

1 个答案:

答案 0 :(得分:3)

您可以将任何系列或列传递给fillna()。在这种情况下,您需要使用系列1 - df['Idx']填充缺失值以获得结果:

>>> df
   Title  Idx
0    NaN    0
1      0    1
2      1    0
3    NaN    0
4    NaN    1

>>> df['Title'] = df['Title'].fillna(1 - df['Idx'])
>>> df
   Title  Idx
0      1    0
1      0    1
2      1    0
3      1    0
4      0    1