Таблицы перечислены с помощью функций TableList и Table в API camelot, найденном здесь: https://camelot -py.readthedocs.io / en / master / api.html # camelot.core.TableList
начинается на веб-странице, где написано:
Классы нижнего-нижнего уровня
Камелот не имеет ссылки на имя таблицытолько описания данных ячейки. Он использует API базы данных panda для Python, хотя в нем может быть имя таблицы.
Объедините использование Камелота и Панд для получения имени таблицы.
Получить имя панды DataFrame
добавленное обновление для ответа
из https://camelot -py.readthedocs.io / en / master /
import camelot
tables = camelot.read_pdf('foo.pdf')
tables
<TableList n=1>
tables.export('foo.csv', f='csv', compress=True) # json, excel, html
tables[0]
<Table shape=(7, 7)>
tables[0].parsing_report
{
'accuracy': 99.02,
'whitespace': 12.24,
'order': 1,
'page': 1
}
tables[0].to_csv('foo.csv') # to_json, to_excel, to_html
df_table = tables[0].df # get a pandas DataFrame!
#add
df_table.name = 'name here'
#from https://stackoverflow.com/questions/31727333/get-the-name-of-a-pandas-dataframe
import pandas as pd
df = pd.DataFrame( data=np.ones([4,4]) )
df.name = 'Ones'
print df.name
примечание: добавленный атрибут 'name' не является частью df. При сериализации df добавленный атрибут name теряется.
Более добавленный ответ, атрибут 'name' фактически называется 'index'.
Getting values
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
... index=['cobra', 'viper', 'sidewinder'],
... columns=['max_speed', 'shield'])
>>> df
max_speed shield
cobra 1 2
viper 4 5
sidewinder 7 8
Single label. Note this returns the row as a Series.
>>> df.loc['viper']
max_speed 4
shield 5
Name: viper, dtype: int64