Pandas按分隔符拆分pca列为两列时报列长度不一致错误如何解决
你收到列长度不匹配报错的核心原因是直接按逗号拆分时,部分行的pca列格式不符合预期:比如存在缺失值、空字符串、方括号内元素数量不等于2、存在多余逗号等情况,导致str.split(expand=True)输出的列数不是固定2列,和你要赋值的pca_A、pca_B两列数量无法对应。
可直接运行的修复代码
# 先移除pca列首尾的方括号,再按逗号+任意后续空格拆分,最多拆分1次保证仅生成2列 getClusterReview[['pca_A', 'pca_B']] = ( getClusterReview['pca'] .str.strip('[]') # 一次性移除首尾的方括号,无需拆分后逐列处理 .str.split(',\s*', expand=True, n=1) # n=1限制最多拆分1次,避免多余逗号导致列数溢出 )
如果运行后仍有报错,说明存在完全不符合格式的异常行,可以先执行以下代码定位异常内容:
split_temp = getClusterReview['pca'].str.strip('[]').str.split(',\s*', expand=True) # 输出所有拆分后列数不足2的异常行 print(getClusterReview[split_temp.isna().any(axis=1)])
定位到异常行后可根据业务需求选择删除异常行、或者给异常行的pca_A、pca_B填充默认值后再执行赋值操作。
内容的提问来源于stack exchange,提问作者kittyKat
相关产品推荐
相关产品推荐

