使用Pandas读取文本为DataFrame时,如何跳过首尾行解决解析错误?
解决Pandas读取文本时跳过首行和末行的问题
方法一:直接用skiprows+skipfooter参数
在read_csv里同时指定跳过开头2行和最后1行,注意必须加上engine='python'——默认的C解析器不支持skipfooter参数:
import pandas as pd df = pd.read_csv("DATA/e201910.txt", skiprows=2, skipfooter=1, header=None, delimiter=r"\s+", engine='python')
方法二:先统计行数再控制读取范围
如果是超大文件,担心Python引擎效率低,可以先统计文件总行数,再计算需要读取的有效行数:
import pandas as pd # 先统计文件总行数 with open("DATA/e201910.txt", 'r') as f: total_lines = sum(1 for _ in f) # 跳过前2行,读取总行数减去开头2行和结尾1行的内容 df = pd.read_csv("DATA/e201910.txt", skiprows=2, header=None, delimiter=r"\s+", nrows=total_lines - 3)
报错原因说明
你的问题确实出在最后一行0000 SEP——它只有2个字段,和前面行的8个字段格式不匹配,导致解析器报错。
内容的提问来源于stack exchange,提问作者JFerro
相关产品推荐
相关产品推荐

