使用pandas库中的merge()函数,指定多个列作为合并的条件。例如:
import pandas as pd
# 创建第一个数据框
df1 = pd.DataFrame({'key1': ['A', 'B', 'C', 'D'], 'key2': ['K1', 'K2', 'K3', 'K4'], 'value1': [1, 2, 3, 4]})
# 创建第二个数据框
df2 = pd.DataFrame({'key1': ['A', 'B', 'C', 'E'], 'key2': ['K1', 'K3', 'K2', 'K5'], 'value2': [5, 6, 7, 8]})
# 按照 key1 和 key2 两列作为条件合并两个数据框
merged_df = pd.merge(df1, df2, on=['key1', 'key2'])
print(merged_df)
输出结果为:
key1 key2 value1 value2
0 A K1 1 5
1 C K2 3 7
2 B K2 2 NaN
3 B K3 2 6
此时,merged_df 中只包括满足 key1 和 key2 两个条件的记录。其中 value2 如果在 df2 中不存在,则以 NaN 的形式出现。如果需要继续合并其他数据框,只需要在 merge() 函数中添加相应的参数即可。