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

Pandas拆分列报错ValueError:列长度需与键一致

解决DataFrame拆分Observed_Property字段时的ValueError问题

报错原因

你执行拆分代码时触发的ValueError: 列数必须与键的长度一致,是因为部分Observed_Property值包含多个连字符('-'),使用默认的str.split('-', expand=True)会将这些值拆分成超过2列的结果,但你只指定了["pcode","pname"]两个列名,导致列数不匹配。

解决方案

方案1:仅拆分第一个连字符(推荐)

如果你的需求是提取第一个'-'前的编码(如39398)和后面的属性名称,只需限制拆分次数为1次,确保只会生成2列:

# 仅拆分第一个'-',生成2列
df[["pcode","pname"]] = df["Observed_Property"].str.split('-', n=1, expand=True)
# 清理字段前后的空格(可选但推荐)
df["pcode"] = df["pcode"].str.strip()
df["pname"] = df["pname"].str.strip()

方案2:先排查异常值

如果怀疑存在没有'-'或者有多个'-'的异常数据,可以先定位并处理这些行:

# 找出Observed_Property中'-'数量不等于1的行
invalid_rows = df[df["Observed_Property"].str.count('-') != 1]
print("异常行:")
print(invalid_rows)
# 根据实际业务逻辑修正这些异常值后,再执行拆分操作

内容的提问来源于stack exchange,提问作者Mr. Geologist

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:01:00