Pandas中如何合并以ID_NIL为索引的两个数据集,pd.concat报错如何解决
错误原因
pd.concat([restloc, result3], axis=1)报错的核心原因是:concat按列拼接时会严格匹配索引值,restloc的索引ID_NIL存在大量重复值(同一个城区对应多家餐厅),而result3的ID_NIL是唯一值,二者索引结构不匹配,无法直接按列对齐拼接。
正确实现方法
你需要的是按公共索引ID_NIL做关联匹配,将城区属性映射到每一条餐厅记录上,有两种常用实现方式:
- 使用
pd.merge关联
result4 = pd.merge( left=restloc, right=result3, left_index=True, right_index=True, how='left' )
参数说明:
left_index=True、right_index=True:指定两个表都用自身索引作为关联键how='left':左连接,保留restloc中所有餐厅记录,未匹配到对应城区属性的字段会填充为NaN
- 使用
join方法(更简洁,默认按索引左连接)
result4 = restloc.join(result3, how='left')
结果验证
合并完成后可执行result4.info()查看字段完整性,正常会返回2265条记录,包含restloc的4个原有字段+result3的4个城区属性字段。
内容的提问来源于stack exchange,提问作者Gloria Dalla Costa
相关产品推荐
相关产品推荐

