Pandas正则分割报错ValueError: Columns must be same length as key求助
解决Pandas正则分割报错
ValueError: Columns must be same length as key 报错原因
你的代码未限制分割次数,若部分行文本中存在多个符合\d{2}/\d{2}格式的内容,会导致分割结果元素数量超过2个,无法对应到['Auth_date', 'Description']两列;若存在行无法匹配正则规则,分割结果仅1个元素,同样会触发长度不匹配错误。
修正代码
df[['Auth_date', 'Description']] = df['Description'].str.split('(?<=\d{2}/\d{2}) ', n=1, expand=True, regex=True)
参数说明
n=1:强制只执行一次分割,确保每个字符串最多拆分为2个部分,避免后续无关的日期格式内容干扰结果expand=True:将分割结果直接展开为DataFrame结构,可安全赋值给目标列,同时自动为匹配失败的行填充NaN
可选补充处理
若存在完全不匹配正则的行,可提前填充缺失值避免后续问题:
split_df = df['Description'].str.split('(?<=\d{2}/\d{2}) ', n=1, expand=True, regex=True) split_df = split_df.fillna({'Description': ''}) # 为匹配失败的行填充空字符串 df[['Auth_date', 'Description']] = split_df
内容的提问来源于stack exchange,提问作者Shane S
相关产品推荐
相关产品推荐

