如何使用pandas正确读取含多词字段的空格分隔txt文件为dataframe
空格分隔含内容空格的TXT文件读取解决方案
报错原因
你当前报错是因为使用单空格作为分隔符存在两个问题:
- 连续多个空格会被识别为多个空分隔,同时会把字段内容里的单个空格(比如
Schipkau Hörlitz这类带空格的城市名、行政区名里的空格)也当做分隔符拆分,最终导致每行识别到的字段数不一致触发解析错误。 - 你提供的文件实际规则为:字段之间用两个及以上的连续空格作为分隔符,字段内部的内容空格都是单个,只要匹配正确的分隔规则即可解决问题。
修正后代码
import pandas as pd data = pd.read_csv( 'DE.txt', sep=r'\s{2,}', # 正则匹配2个及以上连续空格作为分隔符 header=None, engine='python', # 正则分隔符需指定python引擎避免C引擎告警 on_bad_lines='warn' # 可选:遇到异常行仅告警不中断执行,可根据需要换成skip跳过 )
补充说明
如果部分行存在末尾字段缺失的情况(比如你示例中第11行末尾缺少最后一个数字字段),pandas会自动为缺失位置填充NaN值,无需额外处理。
内容的提问来源于stack exchange,提问作者Julio Reckin
相关产品推荐
相关产品推荐

