通过pandas dataframe中的另一个列内容填充NaN列

时间:2015-09-24 07:37:17

标签: python pandas

我有一个包含大量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]})

2 个答案:

答案 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)