您可以使用 pandas
的 combine_first()
方法来实现这一需求。
此方法会用另一个数据框中相同位置的值来更新为空的元素。
它通过用另一个数据框中的非空值来填充一个数据框中的空值,从而组合两个数据框。结果数据框的行和列索引是两个数据框索引的并集。生成的数据框包含“第一个”数据框的值,并且在调用 first.combine_first(second)
时,如果 first.loc[index, col]
和 second.loc[index, col]
都不缺失,则会覆盖第二个数据框的值。
查阅 combine_first()
的官方文档以获取更多信息。
下面是实现该功能的代码示例:
import pandas as pd
df1 = pd.DataFrame({'key': ['a', 'A'], 'value': [1, 1]})
df2 = pd.DataFrame({'key': ['A', 'B'], 'value': [5, 6]})
# 将 'key' 列设为两个数据框的索引
df1.set_index('key', inplace=True)
df2.set_index('key', inplace=True)
# 合并两个数据框
df3 = df2.combine_first(df1).reset_index()
print(df3)
运行上述代码后,输出结果为:
key value
0 A 5
1 B 6
2 a 1