-4
pdfを表形式のDataframeに変換しようとしています。私はPython 3.6を使用しています。Pythonを使用してPDFをデータフレームに変換する
同じように変換するのを手伝ってください。
PDFファイルのリンクをたどってください:
http://centerforcollegeaffordability.org/uploads/component-rankings-2014-v2.pdf
pdfを表形式のDataframeに変換しようとしています。私はPython 3.6を使用しています。Pythonを使用してPDFをデータフレームに変換する
同じように変換するのを手伝ってください。
PDFファイルのリンクをたどってください:
http://centerforcollegeaffordability.org/uploads/component-rankings-2014-v2.pdf
私は道を見出しました。私はTabula-py bindingとPyPDF2を使用しています。
私はPyPDF2を使用してPDF内のページ数を取得し、それを使用して.pdfファイルの各ページを反復処理しています。
そしてTabulaは、データを抽出してデータフレームに変換するために使用されます。
より良い方法がある場合は、修正してください。
import pandas as pd
import numpy as np
from tabula import read_pdf_table
import PyPDF2
reader = PyPDF2.PdfFileReader(open('Your Path', mode='rb'))
m = reader.getNumPages()
#print(reader)
print(m)
for i in range(m):
n = i+1
if n==1:
df = read_pdf_table('Your Path', pandas_options={'header': None, 'error_bad_lines': False}, pages=n)
index = np.where(df[0].isnull())[0]
sect = df.iloc[index[0]:index[-1]]
s = []
headers = []
for col in sect:
colnames = sect[col].dropna().values.flatten()
(s.insert(len(s), colnames))
pic = [' '.join(s[col])]
for i in pic:
headers.append(i)
print(df)
df.drop(sect, inplace=True)
df.columns = headers
new_df = pd.DataFrame(columns=headers)
new_df = pd.concat([new_df, df], axis=0, ignore_index=True)
else:
df_2 = read_pdf_table('Your Path', pandas_options={'header': None, 'error_bad_lines': False, 'encoding': "ISO-8859-1"}, pages=n)
df_2.drop(sect, inplace=True)
df_2.columns = headers
new_df = pd.concat([new_df, df_2], axis=0, ignore_index=True)
new_df.columns = headers
print(new_df)
new_df.to_csv('Your Path', index=False)
Stackoverflowは無料のコード作成サービスではありません。 –
はい、私は知っています。私はここに学びます。私はPythonの初心者です。私は同じことを解決しようとしました。私はPyPDF2を使ってみましたが、それはしませんでした。回避策の提案をお願いします。 –
あなたが試したことを示してください。 –