使用Python pandas导入格式不规范TXT文件并跳过开头冗余行的方案咨询
解决方案
- 方案1:固定跳过开头无效行(适合文件结构固定场景)
直接通过pandas内置参数跳过前9行无效内容即可完成导入,无需手动修改源文件:
import pandas as pd df = pd.read_csv( '你的文件路径.txt', sep=r'\s*;\s*', # 自动忽略分号前后的多余空格 skiprows=9, # 跳过前9行非数值内容 header=None, # 不需要A/B/C/D/E/F作为列名时保留该参数,需要列名可将skiprows改为8、header改为8 engine='python' )
- 方案2:自动识别有效数据行(适合参数区行数可变场景,鲁棒性更强)
逐行读取文件后筛选符合数值特征的行,完全不需要关注前置无效内容的长度:
import pandas as pd import io valid_lines = [] with open('你的文件路径.txt', 'r', encoding='utf-8') as f: for line in f: stripped_line = line.strip() # 匹配以数字开头、包含分号的有效数值行 if ';' in stripped_line and stripped_line[0].isdigit(): valid_lines.append(stripped_line) df = pd.read_csv( io.StringIO('\n'.join(valid_lines)), sep=r'\s*;\s*', header=None, engine='python' )
如果需要保留表头行的A ; B ; C ; D ; E ; F作为DataFrame的列名,只需要调整筛选逻辑和header参数即可。
内容的提问来源于stack exchange,提问作者Joana Gil
相关产品推荐
相关产品推荐

