使用Pandas拆分列至同一DataFrame时遭遇ValueError错误求助
解决Pandas拆分列并添加到原DataFrame的错误问题
错误原因
你触发的ValueError是因为列索引写法错误:africa_raw_df['city', 'province', 'country']会被Pandas识别为单个多级列名,而非三个独立的新列。这导致Pandas期望接收一个1维数组,但str.split(expand=True)返回的是3列的DataFrame(形状(2872,3)),两者维度不匹配,因此报错。
正确实现方法
直接用列表形式指定新列名,将拆分后的多列DataFrame赋值给原DataFrame的对应列即可:
# 一步完成拆分并添加新列 africa_raw_df[['city', 'province', 'country']] = africa_raw_df.location.str.split(",", expand=True)
额外优化建议
如果部分location值的逗号数量不确定,建议添加n=2参数限制拆分次数,确保始终得到3列,避免因拆分出更多列导致报错:
# 限制最多拆分2次,保证生成3列 africa_raw_df[['city', 'province', 'country']] = africa_raw_df.location.str.split(",", n=2, expand=True)
完成后,city、province、country三个新列就会被添加到原DataFrame中,与原有数据合并显示。
内容的提问来源于stack exchange,提问作者Taf Chan
相关产品推荐
相关产品推荐

