本文介绍如何使用 `pandas.read_csv()` 的 `skiprows` 和 `header` 参数,自动跳过 txt 数据文件中的前导注释与表头行,精准读取数值数据用于绘图,同时保留原始文本信息以动态生成图表标题、图例等。
在处理实验仪器导出的 .txt 数据文件时,常见格式包含多行描述性文本(如标题、单位、列说明),而实际数值数据从第 4 行(或更后)才开始。若每次手动编辑文件删除前几行,不仅效率低,还易出错且不可复现。幸运的是,pandas.read_csv() 提供了灵活的参数,可原生支持此类结构化文本解析。
✅ 正确跳过前导行:skiprows 与 header=None
根据问题中示例,数据从第 4 行(0-indexed 即第 5 行)起始,前 3 行为字符串标题/表头。我们应跳过这 3 行(注意:skiprows=3 跳过前 3 行,使第 4 行成为首行数据),而非 skiprows=4(那会误跳首行有效数据)。此外,因前三行含非标准列名(如 “AUTime” “AUPercent” 混杂引号与空格),不应将其作为列索引,需显式设置 header=None:
df = pd.read_csv(filename, delim_whitespace=True, skiprows=3, header=None)
✅ 此时 df 将获得纯数值的 4 列 DataFrame,索引为 0, 1, 2, 3,可安全使用 df.iloc[:, 0] 等方式提取。
? 同时提取原始标题信息(用于图例/标题)
若需复用第一行(如 “Power Curve Thermocouple TC_MS” “Power Curve Thermocouple TC_FS”)作为图例标签,或第二行(”AUTime” “AUPercent” “AUTime” “AUPercent”)辅助标注,可在读取前先手动解析头部: