如何根据另一列的值替换一列的 NaN 值?
How to substitute NaN values of a column based on the values of another column?
我想根据列 Idx 的值替换列 Title 的 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。我如何在这里添加条件?
您可以将任何系列或列传递给 fillna()
。在这种情况下,您需要使用 Series 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
我想根据列 Idx 的值替换列 Title 的 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。我如何在这里添加条件?
您可以将任何系列或列传递给 fillna()
。在这种情况下,您需要使用 Series 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