使用Pandas读取CSV文件时跳过行与列的方法
用Pandas读取不规范机器参数CSV文件的实用方案
针对你遇到的CSV文件格式混乱(大量空行空列、数据从第301行开始)的问题,直接用默认参数读取肯定会出问题,给你一套分步处理的方法:
跳过前300行,定位有效数据起始点
Pandas的read_csv提供了skiprows参数,可以直接跳过前面无关的行。如果第301行是数据的表头,直接用:df = pd.read_csv('你的文件名.csv', skiprows=300)如果第301行是纯数据(没有表头),就加上
header=None,后续再自定义表头:df = pd.read_csv('你的文件名.csv', skiprows=300, header=None) # 自定义表头示例 df.columns = ['参数编号', '温度', '压力', '转速', '振动值']清理全空的行和列
读取后用dropna过滤掉完全空的行和列,避免干扰后续分析:# 删除全空的行 df = df.dropna(how='all', axis=0) # 删除全空的列 df = df.dropna(how='all', axis=1)要是遇到部分列有数据但存在空值的情况,别用
how='any',会误删有效数据;如果需要保留非空值,后续可以单独处理某列的空值(比如填充默认值)。额外处理:编码与分隔符问题
如果读取时出现乱码,试试指定编码格式,比如encoding='gbk'(Windows生成的CSV常用)或encoding='utf-8':df = pd.read_csv('你的文件名.csv', skiprows=300, encoding='gbk')要是CSV的分隔符不是逗号,用
sep参数指定,比如制表符分隔就用sep='\t'。
完整示例代码
import pandas as pd # 读取文件,跳过前300行,指定编码(按需调整) df = pd.read_csv('machine_params.csv', skiprows=300, encoding='gbk') # 清理全空行和列 df_cleaned = df.dropna(how='all', axis=0).dropna(how='all', axis=1) # 查看处理后的前5行数据 print(df_cleaned.head())
内容的提问来源于stack exchange,提问作者Ernu
相关产品推荐
相关产品推荐

