如何从文本文件向Pandas提取数据时忽略无效元数据?
解决Pandas加载带顶部元数据的文本文件时的ParserError问题
这个问题很常见——你遇到的ParserError有两个核心原因:一是文本文件开头的元数据被Pandas当成了数据行,二是你没有指定正确的分隔符(文件是制表符分隔,而Pandas默认用逗号分割),这就导致解析时字段数不匹配,触发了错误。
根据你提供的文件内容,前10行都是描述性元数据,第11行是数据的表头(DATE和VALUE),之后才是真正的时间序列数据。这里有两种简单可靠的解决方法:
方法一:用skiprows跳过元数据行
直接指定要跳过的前10行元数据,同时设置正确的分隔符为制表符(\t):
import pandas as pd data = pd.read_csv('https://fred.stlouisfed.org/data/PERMIT.txt', skiprows=10, sep='\t')
方法二:用header指定表头位置
告诉Pandas表头在第11行(对应索引为10,因为Python采用0开始计数),这样它会自动跳过前面的元数据,同时指定分隔符:
import pandas as pd data = pd.read_csv('https://fred.stlouisfed.org/data/PERMIT.txt', header=10, sep='\t')
这两种方法都能正确加载数据,你可以根据习惯任选其一。本质上都是让Pandas避开开头的非数据内容,同时用正确的规则解析制表符分隔的数据集。
内容的提问来源于stack exchange,提问作者prashanth manohar
相关产品推荐
相关产品推荐

