熊猫:如何指定起始行来提取数据

时间:2017-07-20 18:04:11

标签: python excel pandas dataframe

我正在使用Pandas库和Python。

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

但是,标题信息可能需要更长的行,因此无法预测多长时间。

所以,我的数据提取应该从它所说的“ID”开始...... 对于这种特殊情况,它从第5行开始,但可能会发生变化。

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

如何将其置于逻辑中(跳过标题并跳转到第5行)? 模式应该是,行标题从“ID,EMP_ID”等开始。

enter image description here

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

2 个答案:

答案 0 :(得分:4)

您可以手动检查标题行,然后使用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]

答案 1 :(得分:3)

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

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