Python对比两个DataFrame,补全df2匹配行的缺失列值
解决方案:DataFrame缺失列值补全
可以直接用pandas的merge方法实现左连接,基于共同列匹配后补全缺失值,步骤如下:
代码实现
import pandas as pd # 构造示例df1 df1 = pd.DataFrame({ 'column1': [1, 2, 3], 'column2': [2, 3, 4], 'column3': [3, 4, 5] }) # 构造示例df2 df2 = pd.DataFrame({ 'column1': [1, 2, 3, 4, 5], 'column2': [2, 3, 4, 5, 6] }) # 左连接补全缺失列:保留df2所有行,匹配df1对应列补全column3 df3 = df2.merge(df1, on=['column1', 'column2'], how='left') print(df3)
基础输出结果
column1 column2 column3 0 1 2 3.0 1 2 3 4.0 2 3 4 5.0 3 4 5 NaN 4 5 6 NaN
如果需要让缺失值显示为空(和示例格式完全一致),可以追加fillna('')处理:
df3 = df2.merge(df1, on=['column1', 'column2'], how='left').fillna('') print(df3)
处理后的输出:
column1 column2 column3 0 1 2 3 1 2 3 4 2 3 4 5 3 4 5 4 5 6
内容的提问来源于stack exchange,提问作者Eurasta
相关产品推荐
相关产品推荐

