使用 tabula.py 从 PDF 格式读取没有标题的表格

Mat*_*her 2 python pdf dataframe

我有一个包含表格的 pdf 文件,想使用 tabula 将其作为数据框读取。但只有第一个 PDF 页有列标题。第 1 页之后的数据帧标题成为信息的第一行。有什么方法可以将第 1 页数据帧中的标题添加到其余数据帧中吗?提前致谢。非常感激!

小智 9

可以通过以下步骤解决这个问题:

  1. 阅读 PDF:

    表= tabula.read_pdf(文件名,pages='all',pandas_options={'header': None})

这将创建一个数据框列表,其中页面作为列表中的数据框。

pandas_options={'header': None} 用于不将第一行作为数据帧中的标题。

因此,第一页的标题将是表格列表中数据框的第一行。

  1. 将标头保存在变量中:

    cols = 表[0].values.tolist()[0]

这将创建一个名为 cols 的列表,其表列表中第一个 df 的第一行是我们的标题。

  1. 删除第一页的第一行:

    表[0] = 表[0].iloc[1:]

此行将删除表列表中第一个 df(page) 的第一行,因为我们已经存储在变量中,我们不再需要它。

  1. 为所有页面提供标题:

    对于表中的 df: df.columns = cols

该循环将迭代每个 dfs(pages) 并为它们提供我们存储在 cols 变量中的标头。

因此,第 1 页数据帧的标题将被赋予其余数据帧(页面)。

您还可以将其连接到一个数据框中

将 pandas 导入为 pd

和:

df_Final = pd.concat(表)

希望这对您有帮助,感谢您提供这个机会。