我正在使用pdfplumber从pdf中提取表格。但是,正在使用的表没有可见的垂直线分隔内容,因此提取的数据被分成3行和1列。

我想把上面的表格排成13行。
import pdfplumber
import pandas as pd
import numpy as np
with pdfplumber.open('test.pdf') as pdf:
page = pdf.pages[0]
tables = page.extract_tables()
print(tables)从文档中,我不能理解是否有特定的表设置可以应用。我试了一些,但没有用。
发布于 2021-08-21 14:28:01
使用extract_tables()选项时,请添加以下设置(可能需要根据您的输入文件进行更改):
import pdfplumber
import pandas as pd
import numpy as np
with pdfplumber.open(r'document.pdf') as pdf:
page = pdf.pages[0]
table = page.extract_table(table_settings={"vertical_strategy": "lines",
"horizontal_strategy": "text",
"snap_tolerance": 4,})
df = pd.DataFrame(table, columns=table[0]).T此外,请阅读pdfplumber文档(提取表)部分,因为有许多选项可以包含在基于输入文件的代码中:
发布于 2021-08-21 12:18:15
您可以使用pandas.DataFrame定制您的表格,而不是直接打印表格。
df = pd.DataFrame(tables[1:], columns=tables[0])
for column in df.columns.tolist():
df[column] = df[column].str.replace(" ", "")
print(df)https://stackoverflow.com/questions/68872782
复制相似问题