Pandas读取CSV时出现反斜杠换行、后续列追加到首列问题排查
问题解答
异常产生原因
- 表头行末尾的反斜杠是pandas的终端输出软换行标记:当终端默认显示宽度小于DataFrame单行内容总宽度时,pandas会自动将单行拆分为多行展示,反斜杠仅用于标记前后两行属于同一行输出,不属于数据或文件本身的内容。
- 若确实存在后续列被追加到首列的问题,核心原因为
read_csv指定的分隔符和CSV文件实际的列分隔符不匹配:你当前设置了sep=';',如果文件实际采用逗号、制表符、空格等其他符号做列分隔,pandas就无法正确拆分列,会把多列内容识别为同一列的内容。
解决方法
- 先验证数据读取是否正确:执行
print(excel1.columns)查看所有列名、执行print(excel1.shape)查看行列数,如果和CSV实际的列数一致,说明仅为显示层面的问题,新增以下配置即可取消折行展示:
pd.options.display.width = None
- 如果确认列数异常、多列合并:根据CSV实际使用的分隔符调整
sep参数即可:- 逗号分隔:将
sep=';'修改为sep=',' - 制表符分隔:修改为
sep='\t' - 不定长空格分隔:修改为
sep='\s+' - 不确定分隔符类型时,可开启自动识别:
excel1 = pd.read_csv('CO-Chats1.csv', sep=None, engine='python') - 逗号分隔:将
内容的提问来源于stack exchange,提问作者Reinaldo Franco
相关产品推荐
相关产品推荐

