pandas.Dataframe:从另一个DF填充缺失值

0 投票
1 回答
691 浏览
提问于 2025-04-17 19:26

比如我有这样的内容:

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

撰写回答