使用Python Tabula模块转换PDF至XLSX时数据全在首列的解决方法
解决Tabula转换PDF后Excel第一列冗余问题
方法一:直接删除DataFrame第一列
在数据导出前,通过列索引移除第一列即可:
import tabula df = tabula.read_pdf('Question.pdf', pages=1, lattice=True)[1] df.columns = df.columns.str.replace('\r', ' ') data = df.dropna() # 删除索引为0的第一列 data = data.drop(data.columns[0], axis=1) data.to_excel('data.xlsx', index=False)
如果已知第一列的具体名称,也可以直接传入列名替代索引,比如data.drop("冗余列名", axis=1)。
方法二:优化Tabula读取参数避免冗余列
若PDF表格布局导致识别出多余列,可手动指定列分割位置,或切换读取模式:
import tabula # 根据PDF表格实际宽度,手动设置列分割的横坐标位置 df = tabula.read_pdf('Question.pdf', pages=1, lattice=True, columns=[80, 180, 280, 380])[1] df.columns = df.columns.str.replace('\r', ' ') data = df.dropna() data.to_excel('data.xlsx', index=False)
columns参数的数值对应PDF页面上的横向坐标,需根据你的Question.pdf表格布局调整;也可尝试将lattice=True替换为stream=True,适配不同类型的PDF表格。
内容的提问来源于stack exchange,提问作者Yunus Emre
相关产品推荐
相关产品推荐

