You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Tabula提取PDF表格:为何仅能获取第一页表格的技术咨询

问题原因分析

你的第二行代码存在两个关键错误,导致只能获取第一页表格:

  • 错误调用pd.DataFrame()
    pd.DataFrame()的构造参数不接受pdf_file、pages、lattice这类Tabula专属参数。你直接把PDF文件路径传给pd.DataFrame()是完全错误的用法——它根本不知道如何处理PDF文件,写法逻辑完全颠倒。正确流程是先用tabula.read_pdf()提取表格数据,再将结果转换为DataFrame。

  • 错误的索引取值[0]
    当你用tabula.read_pdf(pdf_file, pages='all', lattice=True)时,返回的是一个列表,列表中的每个元素对应PDF中一页的表格(若一页有多个表格,每个表格也会是列表中的独立元素)。如果代码写成tabula.read_pdf(...)[0],只会取列表的第一个元素,也就是第一页的第一个表格。你之前的错误写法碰巧返回了类似结构,所以只能看到第一页内容。

正确写法示例

如果你想用lattice模式提取所有页表格并转为DataFrame,参考以下写法:

# 提取所有页表格,返回列表格式的结果
tables_list = tabula.read_pdf(pdf_file, pages='all', lattice=True)
# 若所有表格结构一致,合并为单个DataFrame
combined_df = pd.concat(tables_list, ignore_index=True)
# 单独获取某一页的表格(比如第3页,列表索引从0开始)
third_page_df = tables_list[2]

内容的提问来源于stack exchange,提问作者arvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:40:23