Python Library Camelot 未阅读一页中的所有表格
Python Library Camelot not reading all tables in one page
我正在使用 Camelot Python 库读取 pdf 文档页面中的所有 tables
我想阅读此 pdf
第 10 页的所有 table
我尝试调试绘制页面,如果我改变风格,我会注意到一些事情:
这个有味道lattice
这个有味道stream
问题是如果我使用 lattice flavor 它将无法正确读取 tables
一个例子 here
如果我使用 flavor='stream',它将正确读取数据,但只有一个 table:
output 是这样的。
我尝试使用 table_area/table_regions 来检测 flavor='stream' 的两个 table,但它没有用。
我把代码贴在这里。
带点阵的代码:
import camelot
file = "2022/Auto-trend0122.pdf"
tables = camelot.read_pdf(file,pages='10',flavor='lattice',edge_tool=1500)
print("Total tables extracted:", tables.n)
print(tables[0].df) camelot.plot(tables[0],filename="try_plot.png", kind='contour')
print(tables[1].df)
有流的代码,没有table_area/table_regions:
import camelot
file = "2022/Auto-trend0122.pdf"
tables = camelot.read_pdf(file,pages='10',flavor='stream', edge_tool=1500)
print("Total tables extracted:", tables.n)
print(tables[0].df)
camelot.plot(tables[0],filename="try_plot.png", kind='contour')
代码流,table_area:
import camelot
file = "2022/Auto-trend0122.pdf"
tables = camelot.read_pdf(file,pages='10',flavor='stream',edge_tool=1500,table_area=['10,450,550,50','10,750,550,450'])
print("Total tables extracted:", tables.n)
print(tables[0].df)
camelot.plot(tables[0],filename="try_plot.png", kind='contour')
代码流,table_regions:
import camelot
file = "2022/Auto-trend0122.pdf"
tables = camelot.read_pdf(file,pages='10',flavor='stream',edge_tool=1500,table_regions=['10,450,550,50','10,750,550,450'])
print("Total tables extracted:", tables.n)
print(tables[0].df)
camelot.plot(tables[0],filename="try_plot.png", kind='contour')
table_regions/table_area/without的输出是一样的。
问题是您使用的是 table_area 而不是正确的参数 table_areas
(阅读 docs)。
以下命令完美运行:
tables = camelot.read_pdf(file,pages='10', flavor='stream', edge_tool=1500, table_areas=['10,450,550,50','10,750,550,450'])
table_area和table_regions
的区别
当您知道 table 的确切位置时,应使用 table_areas
。相反,table_regions
使检测引擎仅在那些通用页面区域中查找 table。
我正在使用 Camelot Python 库读取 pdf 文档页面中的所有 tables
我想阅读此 pdf
第 10 页的所有 table我尝试调试绘制页面,如果我改变风格,我会注意到一些事情:
这个有味道lattice
这个有味道stream
问题是如果我使用 lattice flavor 它将无法正确读取 tables 一个例子 here
如果我使用 flavor='stream',它将正确读取数据,但只有一个 table: output 是这样的。
我尝试使用 table_area/table_regions 来检测 flavor='stream' 的两个 table,但它没有用。 我把代码贴在这里。
带点阵的代码:
import camelot
file = "2022/Auto-trend0122.pdf"
tables = camelot.read_pdf(file,pages='10',flavor='lattice',edge_tool=1500)
print("Total tables extracted:", tables.n)
print(tables[0].df) camelot.plot(tables[0],filename="try_plot.png", kind='contour')
print(tables[1].df)
有流的代码,没有table_area/table_regions:
import camelot
file = "2022/Auto-trend0122.pdf"
tables = camelot.read_pdf(file,pages='10',flavor='stream', edge_tool=1500)
print("Total tables extracted:", tables.n)
print(tables[0].df)
camelot.plot(tables[0],filename="try_plot.png", kind='contour')
代码流,table_area:
import camelot
file = "2022/Auto-trend0122.pdf"
tables = camelot.read_pdf(file,pages='10',flavor='stream',edge_tool=1500,table_area=['10,450,550,50','10,750,550,450'])
print("Total tables extracted:", tables.n)
print(tables[0].df)
camelot.plot(tables[0],filename="try_plot.png", kind='contour')
代码流,table_regions:
import camelot
file = "2022/Auto-trend0122.pdf"
tables = camelot.read_pdf(file,pages='10',flavor='stream',edge_tool=1500,table_regions=['10,450,550,50','10,750,550,450'])
print("Total tables extracted:", tables.n)
print(tables[0].df)
camelot.plot(tables[0],filename="try_plot.png", kind='contour')
table_regions/table_area/without的输出是一样的。
问题是您使用的是 table_area 而不是正确的参数 table_areas
(阅读 docs)。
以下命令完美运行:
tables = camelot.read_pdf(file,pages='10', flavor='stream', edge_tool=1500, table_areas=['10,450,550,50','10,750,550,450'])
table_area和table_regions
的区别 当您知道 table 的确切位置时,应使用table_areas
。相反,table_regions
使检测引擎仅在那些通用页面区域中查找 table。