我想根据列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.我怎么能在这里添加条件?
答案 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