pandas.Dataframe:从另一个DF填充缺失值
比如我有这样的内容:
df_1 = pd.DataFrame({'A': [3 for _ in xrange(10)],
'B': [3 for _ in xrange(10)],
'C': [3 for _ in xrange(10)]})
df_2 = pd.DataFrame({'A': [2 for _ in xrange(5)],
'B': [2 for _ in xrange(5)],
'C': [2 for _ in xrange(5)]})
print(df_1 - df_2)
然后输出会是我预期的样子:
A B C
0 1 1 1
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
5 NaN NaN NaN
6 NaN NaN NaN
7 NaN NaN NaN
8 NaN NaN NaN
9 NaN NaN NaN
我该如何用df_1
中的值来填补新创建的数据框(DF)中的缺失值呢?
1 个回答
4
你可以使用 combine_first
这个方法来填补缺失的值:
In [2]: (df_1 - df_2).combine_first(df_1)
Out[2]:
A B C
0 1 1 1
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
5 3 3 3
6 3 3 3
7 3 3 3
8 3 3 3
9 3 3 3