0

使用 Tabula 阅读 PDF 后,我有一些数据框被拆分,因为它们跨越多个页面。我想连接它们并删除标题行,以便恢复整个表。我想每个文档的表格数量都会改变,所以这似乎应该涵盖表格被拆分的任何场景。

我知道我想要一个 for 循环遍历列表并检查下一个数据帧是否具有相同的列数。如果是这样,则应将两者连接起来。手动连接(使用 print(pd.concat([df_list[12],df_list[13],df_list[14]])))有效,因此只需弄清楚如何编写即可。

这是我的近似值:

import pandas as pd
import tabula

df_list=read_pdf("test.pdf",multiple_tables=True,lattice=True,pages='all',encoding='utf-8',spreadsheet=True)

for i in df_list:
    if i.shape[1] = (i+1).shape[1]:
        pd.concat([i,(i+1)])

我收到错误“TypeError:无法操作 1,块值必须是 str,而不是 int”,但我不确定我在用这个 for 循环做什么。

4

1 回答 1

0

循环中的类型i似乎与表达式中的1(即)类型冲突。您没有在发布的代码中显示 of 的创建,但我的猜测是它是,因此: 您正在尝试使用运算符将​​ int ( ) 与 string ( ) 结合起来。inti+1df_liststrTypeError1i+

于 2019-05-22T16:51:38.067 回答