在某些情况下,使用Tabula和Python从pdf导入数据时,我会获得两列或多列合并。从同一个pdf获取的所有文件都不会发生这种情况。
在这种情况下,这是用于读取pdf的代码:
from tabula import wrapper tables = wrapper.read_pdf("933884 cco Saupa 1.pdf",multiple_tables=True,pages='all') i=1 for table in tables: table.to_excel('output'+str(i)+'.xlsx',index=False) i=i+1
例如,当我打印从这些excel文件之一获得的数据框的第一项时,名为“ output_pd”:
print (output_pd[0][1])
我获得:
76) 858000015903708 77) 858000013641969 78)
这五个数字在同一列中,因此我无法对其进行单独处理。 在这种情况下是否可以改善数据处理?
答案 0 :(得分:0)
您可以尝试在excel中手动编辑数据。如果您在excel的“数据”标签下的列中使用文本,则无需过多的工作即可将一列拆分为多列,但是您需要为每个excel文件都这样做,这可能会很麻烦。
答案 1 :(得分:0)
在使用表格获取的列表中,对每个数据框的每个列的每个项目进行迭代
wrapper.read_pdf(file)
在这种情况下
tables
有可能获得干净的数据。 在这种情况下:
prueba =[]
i = 0
for table in tables:
for columna in table.columns:
for item in (str(table[columna]).split(" ")):
if "858" in str(item):
prueba.append(item[0:15])
print (prueba[0:5])
导致:
['858000019596025', '858000015903707', '858000013641975', '858000000610864', '858000013428853']
但是
tabula.wrapper.read_pdf
不会阅读整个初始pdf文件。最后一页剩下2个值。因此,仍然需要手动进行一些编辑。