如何在Python中跳过CSV文件前9行并将日期列解析为DataFrame索引?
解决Pandas读取CSV跳过指定行并设置日期索引的问题
哈哈,这个小坑我也踩过!你代码里的skiplines是拼写错误啦,pandas里用来跳过行的参数是skiprows,这就是代码跑不起来的核心原因~不用修改原文件完全能实现需求,给你几个实用的方案:
基础修正写法
直接替换参数名就能正常跳过前9行,同时把第一列解析为日期索引:
import pandas as pd df_dados = pd.read_csv( 'dados.csv', skiprows=9, # 跳过前9行无关内容 index_col=0, # 将第一列设为DataFrame的索引 parse_dates=[0] # 把第一列解析为日期格式 )
明确列名的写法
如果你确认跳过9行后的表头里,日期列的名称是timestamp,可以直接指定列名,可读性更强:
df_dados = pd.read_csv( 'dados.csv', skiprows=9, index_col='timestamp', # 用列名指定索引列 parse_dates=['timestamp'] # 解析该列为日期格式 )
进阶优化:提速日期解析
如果你的CSV日期格式固定,还能通过指定格式加快解析速度,避免pandas自动推断:
df_dados = pd.read_csv( 'dados.csv', skiprows=9, index_col=0, parse_dates=[0], infer_datetime_format=True, # 自动推断格式(可选,能大幅提速) format='%Y-%m-%d %H:%M:%S' # 替换成你实际的日期格式 )
小提醒
- 确认
skiprows=9的准确性:前9行确实全是无关内容,第10行是CSV的表头。 - 如果日期解析还是有问题,检查一下日期列的格式是否统一,或者试试把
parse_dates设为True(当index_col指定为日期列时,parse_dates=True会自动解析索引列)。
内容的提问来源于stack exchange,提问作者AmaFor
相关产品推荐
相关产品推荐

