pandas:如何指定起始行提取数据

我正在使用Pandas库和Python。

我有一个Excel文件,在Excel工作表顶部有一些标题信息,我不需要进行数据提取。

但是,标题信息可能需要更长的行,所以不可预测的时间可能会多长。

所以,我的数据提取应该从它所说的“ID”开始……对于这个特殊情况,它从第5行开始,但是它可能会改变。

图像显示在底部(我在第5行灰色显示敏感信息)。

我如何把这个逻辑(跳过标题和跳转到第5行)? 模式应该是,行标题从“ID,EMP_ID”开始。

在这里输入图像说明

with open('File.xls') as fp: skip = next(filter( lambda x: x.startswith('ID'), enumerate(fp) ))[0] df = pd.read_excel('File.xls', usercols=['ID', 'EMP_ID'], skiprows=skip) print df 

您可以手动检查标题行,然后使用read_csv s关键字参数skiprows

 with open('data.csv') as fp: skip = next(filter( lambda x: x[1].startswith('ID'), enumerate(fp) ))[0] 

然后跳过这些行:

 df = pandas.read_csv('data.csv', skiprows=skip) 

就像那样,你可以支持任意长度的预标题部分。


对于Python 2:

 import itertools as it with open('data.csv') as fp: skip = next(it.ifilter( lambda x: x[1].startswith('ID'), enumerate(fp) ))[0] 

你可以使用pd.read_csv并指定skiprows=4

 df = pd.read_csv('test.csv', skiprows=4)