我正在尝试从 PDF 中抓取数据,以便我可以重新格式化它,然后将其插入 Oracle 中的表中。我正在尝试使用 Tabula 读取 PDF 并将其转换为表格列表,但如果这些列仅包含空值,Tabula 似乎正在从表格中删除列。通常这不会是一个问题(数据一开始是“无”,所以我不关心保留它),但是在某些列上而不是在其他列上删除“空”值使得我的代码不可能以确定哪些列是哪些。例如,它可能来自:
0 1 2 3
x x n/a x
x x n/a x
x x n/a x
至
0 1 2
x x x
x x x
x x x
在运行时无法知道要删除哪一列,所以我不能只是将它重新插入到必要的位置。
这些列在数据中没有任何唯一标识符。我不能只在最后添加一个空列,因为在列中保持相同的顺序是绝对必要的。
我研究了 Tabula API,虽然我找到了许多关于如何删除空列的方便指南,但我没有发现任何东西可以确保它们保持存在。
dflist = tabula.read_pdf(path, pages = '14-27', multiple_tables = True)
# dflist is a list of dataframes
# dflist[0] == a single dataframe
(抱歉格式不好;不熟悉堆栈溢出间距)
预期成绩:
0 1 2 3
X NaN X X
X NaN X X
X NaN X NaN
实际结果:
0 1 2
X X X
X X X
X X NaN