基于列值合并两个DataFrame:按关联键将df1的population并入df2
解决方法
直接用Pandas内置的merge方法即可实现双关联键合并,为了避免重复列冗余,可以先裁剪df1只保留关联键和要合并的population列,再执行左连接即可,代码如下:
import pandas as pd # 提前裁剪df1,只保留需要的关联键和目标列,避免合并后出现重复的State列 df1_temp = df1[['countyFIPS', 'County Name', 'population']] # 以countyFIPS和County Name为双关联键执行左连接,完整保留df2的所有行 idealdf = pd.merge( left=df2, right=df1_temp, on=['countyFIPS', 'County Name'], how='left' )
参数说明
on参数传入两个列名的列表,就是指定同时匹配这两个列的值进行关联how='left'是左连接逻辑,可以保证df2的所有行都被保留,就算df1中没有对应的匹配记录,也只会将population设为NaN,不会丢失df2的原有数据- 如果你需要更高的匹配准确性,也可以把
State也加入关联键列表,写成on=['countyFIPS', 'County Name', 'State']即可
如果后续需要补全匹配失败的空值,执行idealdf['population'] = idealdf['population'].fillna(0)就可以把空值统一替换为0。
内容的提问来源于stack exchange,提问作者v_him
相关产品推荐
相关产品推荐

