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

Pandas替换DataFrame列触发ValueError: Columns must be same length as key

错误原因

df1.replace(to_replace=ser1, value=ser2)返回的是包含2个列的完整DataFrame对象,而你尝试将其赋值给df["second_set"]这单个列,两侧维度不匹配,因此触发了ValueError: Columns must be same length as key报错。

正确实现

根据常见的使用场景,有两种解决方案:

场景1:直接将df的second_set列替换为df1的对应列

如果只是简单的整列替换,不需要做值匹配,直接赋值即可:

df["second_set"] = df1["second_set"]

场景2:按first_set的值映射替换second_set

如果你的需求是用df1["first_set"]和df["second_set"]的一一对应关系做值映射,再赋值给df["second_set"],可以先构造映射字典再替换:

# 构造映射关系:key为df1的first_set取值,value为df的second_set对应位置取值
map_dict = dict(zip(df1["first_set"], df["second_set"]))
# 按映射规则替换后赋值给目标列
df["second_set"] = df1["first_set"].replace(map_dict)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:09:04