0

0

如何自动跳过文本文件中的标题行并读取有效数据用于 Python 绘图

花韻仙語

花韻仙語

发布时间:2026-02-06 20:07:03

|

588人浏览过

|

来源于php中文网

原创

如何自动跳过文本文件中的标题行并读取有效数据用于 Python 绘图

本文介绍如何使用 pandas 的 `skiprows` 和 `header` 参数,自动跳过 txt 文件中前导的非数值行(如标题、单位、说明等),精准读取第四行起的数值数据,同时保留原始文本信息用于图表标注。

在实际数据处理中,实验仪器导出的 .txt 文件常包含多行元信息(如标题、列名、单位等),而真正可用于绘图的数值数据通常从第 4 行(即索引为 3 的行)开始。手动删除前导行不仅低效,还易出错且不可复现。幸运的是,pandas.read_csv() 提供了灵活的参数支持,无需预处理文件即可直接定位有效数据。

✅ 正确读取数据:跳过前 4 行 + 禁用自动表头识别

原始文件结构如下(共 4 行元数据 + N 行数值):

"Power Curve Thermocouple TC_MS"    "Power Curve Thermocouple TC_FS"    
"AUTime"    "AUPercent"     "AUTime"    "AUPercent" 
"s" "%"     "s" "%" 
2190.89224179698    41.447689056396484      2190.89224179698    25.676259994506836  
...

只需两处关键修改,即可让代码自动适配:

filename = "curve_htc6000_2.txt"
setTemp = 200

# 跳过前4行(0-indexed,即跳过第0、1、2、3行),且不将任何行设为列名
df = pd.read_csv(filename, delim_whitespace=True, skiprows=4, header=None)

Time1 = df.iloc[:, 0]
Power1 = df.iloc[:, 1]
Time2 = df.iloc[:, 2]
Power2 = df.iloc[:, 3]
? skiprows=4 表示跳过文件开头的 4 行;header=None 强制 pandas 不将任意一行作为列名(否则第 4 行会被误认为列名,导致 iloc[:,0] 取到错误列)。二者配合,确保 df 是一个纯数值的、按位置索引的 DataFrame。

? 进阶技巧:读取并复用原始标题行(可选)

若需提取第一行标题(如 "Power Curve Thermocouple TC_MS")用于图例或标题,可分两步读取

Figma Slides
Figma Slides

Figma Slides 是 Figma 发布的PPT制作和演示文稿生成工具,可以帮助创建、设计、定制和分享演示文稿

下载

立即学习Python免费学习笔记(深入)”;

# 第一步:仅读取前3行,获取元信息
with open(filename, 'r') as f:
    lines = f.readlines()[:3]  # 获取前3行(标题、列名、单位)

title_line = lines[0].strip().strip('"')  # 如:"Power Curve Thermocouple TC_MS" → "Power Curve Thermocouple TC_MS"
col_names = lines[1].split()  # ['"AUTime"', '"AUPercent"', ...]
units = lines[2].split()      # ['"s"', '"%"', ...]

# 第二步:读取数据(跳过前4行)
df = pd.read_csv(filename, delim_whitespace=True, skiprows=4, header=None)

# 后续绘图中可灵活使用
plottitle = f'Power Usage — {title_line}'
plt.title(plottitle)
plt.ylabel(f'Power [{units[1].strip("\"")}]')  # → "Power [%]"

⚠️ 注意事项与最佳实践

  • 验证跳过行数:不同文件可能有不同数量的元数据行。建议先用 head -n 5 filename.txt(Linux/macOS)或 Get-Content filename.txt -Head 5(PowerShell)检查结构。
  • 空行与注释:若文件含空行或 # 注释,可额外添加 comment='#' 或 skip_blank_lines=True 参数增强鲁棒性。
  • 列名复用场景:若需以第二行("AUTime", "AUPercent")作为逻辑列名,可在读取后手动赋值:df.columns = ['Time_MS', 'Power_MS', 'Time_FS', 'Power_FS'],提升代码可读性
  • 性能提示:对超大文件,skiprows 比先读全再切片更省内存,因 pandas 直接跳过指定行而不加载。

通过合理配置 skiprows 和 header,你的绘图脚本即可实现“开箱即用”——无论新旧数据文件,均能自动定位数值区、稳定生成图表,并保留元信息用于专业标注。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

73

2025.12.04

Python 数据清洗与预处理实战
Python 数据清洗与预处理实战

本专题系统讲解 Python 在数据清洗与预处理中的核心技术,包括使用 Pandas 进行缺失值处理、异常值检测、数据格式化、特征工程与数据转换,结合 NumPy 高效处理大规模数据。通过实战案例,帮助学习者掌握 如何处理混乱、不完整数据,为后续数据分析与机器学习模型训练打下坚实基础。

3

2026.01.31

go语言 数组和切片
go语言 数组和切片

本专题整合了go语言数组和切片的区别与含义,阅读专题下面的文章了解更多详细内容。

47

2025.09.03

macOS怎么切换用户账户
macOS怎么切换用户账户

在 macOS 系统中,可通过多种方式切换用户账户。如点击苹果图标选择 “系统偏好设置”,打开 “用户与群组” 进行切换;或启用快速用户切换功能,通过菜单栏或控制中心的账户名称切换;还能使用快捷键 “Control+Command+Q” 锁定屏幕后切换。

347

2025.05.09

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1478

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

710

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

296

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

784

2023.07.05

Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

2

2026.02.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.6万人学习

Git 教程
Git 教程

共21课时 | 3.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号