合并DataFrame,并在没有精确匹配的情况下进行模糊匹配

文章讲述了如何使用Python的pandas库将df1和df2DataFrame按key列合并,对df1中不存在于df2中的key使用df2中X键的值进行填充。
摘要由CSDN通过智能技术生成

直接举栗:df1df2按照key列进行合并。对于在df1中存在但在df2中不存在的key,使用df2key为'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
'''

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值