我正在使用Pandas库和Python.
我有一个Excel文件,该文件在Excel工作表的顶部具有一些标题信息,而我不需要提取这些数据.
但是,标题信息可能需要更长的行,因此无法预测需要多长时间.
因此,我的数据提取应从显示“ ID”的位置开始…
对于这种特殊情况,它从第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]