You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas合并DataFrame遇多行匹配及KeyError问题求助

解决Pandas合并时的KeyError问题

错误原因

你写的df5["American"]提取的是单独的Series对象,这个对象只包含American列的数据,原本的Title列已经被丢弃了。所以当你在merge里指定right_on=["Title"]时,右侧的数据源里根本找不到Title列,自然触发KeyError。

正确解决方案

方法1:保留匹配键列提取DataFrame

提取df5时,同时保留Title和American两列(用双重括号[[]]),这样右侧数据源就有匹配所需的Title列了:

df4.merge(df5[["Title", "American"]], left_on="Title", right_on="Title", how="left")

方法2:用索引匹配(更简洁)

如果df5里的Title没有重复值,可以把它设为索引,再用join方法合并:

df4.join(df5.set_index("Title")["American"], on="Title")

方法3:用映射快速填充

同样适合df5中Title唯一的场景,先把df5转成标题到分类的字典,再映射到df4里:

# 构建标题到American的映射字典
american_dict = df5.set_index("Title")["American"].to_dict()
# 给df4新增American列并填充
df4["American"] = df4["Title"].map(american_dict)

额外注意

合并前务必检查两个DataFrame的Title列内容是否完全一致(比如大小写、空格、特殊符号),如果存在格式差异,会导致部分行匹配不到,出现NaN值。

内容的提问来源于stack exchange,提问作者claudiae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:54:18