使用Pandas将TXT转CSV后所有记录仅存于首单元格的解决方法
解决Pandas读取空格分隔TXT转CSV时内容集中在单个单元格的问题
问题原因
你的TXT文件采用**空格(或多空格/制表符)**作为列分隔符,但pd.read_csv()默认以逗号作为分隔符,导致Pandas将整行内容识别为单个字段,最终所有记录都集中在CSV的第一个单元格中。
解决方案
情况1:文件用多空格分隔
使用正则表达式\s+匹配任意数量的连续空格或制表符,代码如下:
import pandas as pd # 匹配任意数量的空格/制表符作为分隔符 text_file = pd.read_csv('./file.txt', sep='\s+') # 导出CSV时去掉Pandas自动生成的索引 text_file.to_csv('new_file_name.csv', index=False)
情况2:文件用制表符分隔
如果TXT实际是制表符分隔(视觉上像空格),直接指定制表符为分隔符:
import pandas as pd text_file = pd.read_csv('./file.txt', sep='\t') text_file.to_csv('new_file_name.csv', index=False)
小技巧:确认分隔符类型
可以用文本编辑器(如Notepad++)开启「显示所有字符」功能,查看列之间是空格还是制表符,再对应设置sep参数。
内容的提问来源于stack exchange,提问作者user19016544
相关产品推荐
相关产品推荐

