Mat*_*her 2 python pdf dataframe
我有一个包含表格的 pdf 文件,想使用 tabula 将其作为数据框读取。但只有第一个 PDF 页有列标题。第 1 页之后的数据帧标题成为信息的第一行。有什么方法可以将第 1 页数据帧中的标题添加到其余数据帧中吗?提前致谢。非常感激!
小智 9
可以通过以下步骤解决这个问题:
阅读 PDF:
表= tabula.read_pdf(文件名,pages='all',pandas_options={'header': None})
这将创建一个数据框列表,其中页面作为列表中的数据框。
pandas_options={'header': None} 用于不将第一行作为数据帧中的标题。
因此,第一页的标题将是表格列表中数据框的第一行。
将标头保存在变量中:
cols = 表[0].values.tolist()[0]
这将创建一个名为 cols 的列表,其表列表中第一个 df 的第一行是我们的标题。
删除第一页的第一行:
表[0] = 表[0].iloc[1:]
此行将删除表列表中第一个 df(page) 的第一行,因为我们已经存储在变量中,我们不再需要它。
为所有页面提供标题:
对于表中的 df: df.columns = cols
该循环将迭代每个 dfs(pages) 并为它们提供我们存储在 cols 变量中的标头。
因此,第 1 页数据帧的标题将被赋予其余数据帧(页面)。
您还可以将其连接到一个数据框中
将 pandas 导入为 pd
和:
df_Final = pd.concat(表)
希望这对您有帮助,感谢您提供这个机会。