【发布时间】:2021-07-16 14:28:03
【问题描述】:
我有一个 5 页的 pdf 文件,每页都有一个需要提取的表格。我需要从每个页面中提取所有表格并将它们保存为数据框文件,所有这些都使用 python,所以我将文件转换为使用 tabula
的 csv 文件tabula.convert_into('input.pdf', "output.csv", output_format="csv", pages='all')
output.csv 文件的主要问题是有几个额外的逗号。
示例
Id,Name,Age,,Score,Rang,Bonus
181,ALEX,,,,20,987
182,Julia,,,,18,8.390
183,Marian,,,,21,9.170
184,Julien,,0,175,60,9.095
Id,Name,Age,,Score,Rang,Bonus
215,Asma,26,,35,19,3.807
216,Juan,,,,20,7.982
217,Rami,,,,10,1.832
Id,Name,Age,,Score,Rang,Bonus
415,Jessica,,4 920,8 873,538,7.994
416,Karen,,890,6,12,9.993
417,Andrea,,0,69,283,7.200
Id,Name,Age,,Score,Rang,Bonus
419,Rym,10,,18,,10,7.196
420,Noor,10,,70,,910,8.291
421,Nathalie,0,,5,,0,0.900
"",Id,Name,Age,,Score,Rang,Bonus
456,,Joe,,10,13,0,74.917
457,,Loula,,0,18,11,9.990
458,,Maria,,0,15,172,6.425
459,,Carl,,15,17,11,3.349
Id,Name,Age,,Score,Rang,Bonus
566,Diego,,,,0,3.680
567,Carla,0,,26,1,19.361
当我将 csv 文件转换为行/列时,我得到了一些行偏移
查看下面的图片来解决问题: 正如您在图像中看到的,有一些行偏移(文件每一页中的每个表都有特定的行偏移)我该如何解决这个问题
注意: 数据框应该有 6 列带有空字段。 我猜额外的逗号来自 pdf 文件中的空格。如何从 csv 文件中删除多余的逗号或删除 pdf 文件中的多余空间。
非常感谢您的帮助。
【问题讨论】:
-
从您的示例中,我看到 Name 之后出现了一个额外的逗号
,,如果您删除它,您将获得六个所需的值。182,Julia,,18,79,98,8.390-> 删除Julia之后的逗号后,将是182,Julia,18,79,98,8.390- 这是六个值。 -
您能否在文本示例中添加更多行
-
好的,我会更新我的帖子
-
您的预期输出是 Jessica 4,920 岁——我怀疑这是不正确的。
-
正如您所展示的,您的 Tabula CSV 文件不可用。此外,如果没有您的 PDF 文件,我们很难理解为什么 CSV 输出不好。杰西卡真的有4920岁吗?而这里 8873 的分数远高于其他人。如果您一次使用一页 Tabula,您会获得更好的结果吗?您尝试过 multiple_tables=True 吗?
标签: python pandas dataframe csv pdf