我有一个包含大量NaN值的列的数据框。当NaN在列中时,我需要通过另一个列值更新这些值。
One Two
0 10 21
1 11 NaN
2 12 25
我想要一个像这样的结果
One Two
0 10 21
1 11 **11**
2 12 25
请帮助我填写第二列中的切片合成器,并使用Nafill检测来复制第一列中的值。
这是创建第一个矩阵的代码:
df = pd.DataFrame({'One' : [10, 11, 12], 'Two' : [21, np.NAN, 25]})
答案 0 :(得分:5)
您可以使用该列使用fillna
:
In [4]: df['Two'].fillna(df['One'])
Out[4]:
0 21
1 11
2 25
Name: Two, dtype: float64
所以要实际更改列:df['Two'] = df['Two'].fillna(df['One'])
答案 1 :(得分:2)
df['TWO'].mask(df['TWO'].isnull(), df['ONE'], in_place=True)