我正试图从一个PDF格式的提取表,有很多媒体来源的名称。所需的输出是一个全面的csv文件与所有列出的来源列。
我正在尝试编写一个简单的python脚本来从pdf文件中提取表格数据。我能够得到的输出是我尝试合并的每个表格的CSV。然后我使用concat
函数来合并所有文件。结果很混乱,文件中有多余的标点符号和大量空格。
有人能帮我达到一个更好的结果吗?
代码:
from camelot import read_pdf
import glob
import os
import pandas as pd
import numpy as np
extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]
# Get all the tables within the file
all_tables = read_pdf("/Users/zago/code/pdftext/pdftextvenv/mimesiweb.pdf", pages = 'all')
# Show the total number of tables in the file
print("Total number of table: {}".format(all_tables.n))
# print all the tables in the file
for t in range(all_tables.n):
print("Table n°{}".format(t))
print((all_tables[t].df).head())
#convert to excel or csv
#all_tables.export('table.xlsx', f="excel")
all_tables.export('table.csv', f="csv")
extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]
#combine all files in the list
combined_csv = pd.concat([pd.read_csv(f,encoding = 'utf-8', sep=',') for f in all_filenames ])
#export to csv
combined_csv.to_csv("combined_csv_tables.csv", index=False, encoding="utf-8")
1条答案
按热度按时间plicqrtu1#
在连接前仅选择第一列,然后保存。
只需使用以下代码行:
输出:
最终csv输出: