直接举栗:df1
和df2
按照key
列进行合并。对于在df1
中存在但在df2
中不存在的key
,使用df2
中key
为'X'的行的其他列值作为默认值进行填充。
import pandas as pd
df1 = pd.DataFrame({
'key': ['A', 'B', 'C', 'D'],
'value1': [10, 20, 30, 40],
'value3': [100, 200, 300, 400]
})
df2 = pd.DataFrame({
'key': ['A', 'B', 'X'],
'value2': [5, 6, 7],
'value4': [50, 60, 70]
})
# 精确匹配
merged = pd.merge(df1, df2, on='key', how='left')
# 获取'X'键对应的行作为默认值
default_row = df2[df2['key'] == 'X'].iloc[0]
# 填充未匹配的行
for col in df2.columns[1:]: # 跳过'key'列
merged[col].fillna(default_row[col], inplace=True)
print(merged)
'''
key value1 value3 value2 value4
0 A 10 100 5.0 50.0
1 B 20 200 6.0 60.0
2 C 30 300 7.0 70.0
3 D 40 400 7.0 70.0
'''