csv 使用tabula-py为什么我得到一个列表而不是一个DataFrame?

2ic8powd  于 2023-10-13  发布在  其他
关注(0)|答案(2)|浏览(100)

Output
我想使用PDF文件,特别是表格。我把这个编码

  1. import pandas as pd
  2. import numpy as np
  3. import tabula
  4. from tabula import read_pdf
  5. tab= tabula.read_pdf('..\PDFs\Ala.pdf',encoding='latin-1', pages ='all')
  6. tab

但是我得到了一个值列表,像这样:

  1. [ Nombres Edad Ciudad
  2. 0 Noelia 20 Lima
  3. 1 Michelie 45 Lima
  4. 2 Ximena 18 Lima
  5. 3 Miguel 43 Lima]

我无法分析它,因为它不是一个数据框。这只是一个例子,真实的PDF文件包含文本和几个页面之间的表格
请问有没有人可以帮我解决这个问题?

lh80um4z

lh80um4z1#

tabula应该返回一个Pandas字符串列表,每个字符串对应PDF中的一个表。您可以显示(并使用它们)如下:

  1. import pandas as pd
  2. import numpy as np
  3. import tabula
  4. from tabula import read_pdf
  5. dfs = tabula.read_pdf('..\PDFs\Ala.pdf', encoding='latin-1', pages='all')
  6. print(f"Found {len(dfs)} tables")
  7. # display each of the dataframes
  8. for df in dfs:
  9. print(df.size)
  10. print(df)
wqnecbli

wqnecbli2#

tabula返回Pandas DataFrame列表。但是我们可以使用下面的语句将这个列表转换为Pandas DataFrame。

  1. import tabula
  2. import pandas
  3. tab = pandas.DataFrame(tabula.read_pdf('..\PDFs\Ala.pdf', pages ='all')[0])

相关问题