[Automatisierung] Extrahieren Sie die Tabelle als PDF mit Python

PDF ist umständlich

Das Arbeiten mit PDF-Dateien in Python ist schwierig.

In einigen Fällen ist die Tabelle in das PDF eingebettet.

Zum Beispiel

Viele Tabellendaten sind in Ergebnisbericht zur Implementierung des Zeneiren Stress Check Service 2018 eingebettet. Ich werde.

Angenommen, Sie möchten [Tabelle 14 Prozentsatz der stark belasteten Personen nach Branchen] auf Seite 40 der Datei extrahieren.

Wählen Sie diese Tabelle aus, kopieren Sie sie und fügen Sie sie in Excel ein. pdf_table_copy.png

Kopieren und in Excel einfügen.

pdf_copy2excel.png

Oh? Es funktioniert nicht. Alle Daten werden in einer Zelle aufgelistet.

Tatsächlich können Sie Python verwenden, um die Tabellen in dieser PDF-Datei relativ einfach in CSV oder Excel zu konvertieren.

Konvertieren Sie die PDF-Tabelle mit Python in CSV

Es gibt zwei Schritte zum Konvertieren einer Tabelle in einer PDF-Datei in CSV oder Excel mit Python.

Schritt 1. Extrahieren Sie die Tabelle aus PDF als Pandas DataFrame Schritt 2. Schreiben Sie den DataFrame als CSV oder Excel

Schauen wir sie uns der Reihe nach an.

Schritt 1. Extrahieren Sie die Tabelle aus PDF als Pandas DataFrame

Um eine PDF-Tabelle als DataFrame zu extrahieren, verwenden wir ein Modul namens ** tabula **.

Ich denke, dass es viele Leute gibt, die keine Tabula installiert haben. pip install tabula-py Installieren mit.

Darüber hinaus wird diese Tabelle unter Java ausgeführt, sodass Sie auch Java installieren müssen.

Nachdem die Tabula fertig ist, importieren Sie Pandas und Tabula.

python



import pandas as pd
import tabula

So extrahieren Sie eine Tabelle aus einem PDF tabula.read_pdf("xxx.pdf", lattice=True, pages='xxxx') Verwenden Sie die Funktion.

Lesen Sie nun die Tabelle auf Seite 40 des "Ergebnisberichts zur Implementierung des Zeneiren Stress Check Service 2018".

python



# lattice=True, um die Zelle anhand der Tabellenachse zu bestimmen
dfs = tabula.read_pdf("Ergebnisbericht zur Implementierung des Zeneiren Stress Check Service 2018.pdf", lattice=True, pages = '40')

for df in dfs:
    display(df)

tabula_df.png

Es ist seltsam, dass \ r enthalten ist, weil der Spaltenname in der Zelle gebrochen wurde, aber der Inhalt der Tabelle gut extrahiert werden kann.

Korrigieren wir vorerst die Spaltennamen richtig. Sie können den Spaltennamen mit df.rename (column = {'ursprünglicher Spaltenname': 'geänderter Spaltenname'}) ändern. Wenn Sie mehrere Spaltennamen ändern, ist es in Ordnung, wenn Sie den "ursprünglichen Spaltennamen": "den geänderten Spaltennamen" verbinden, indem Sie sie durch ein Komma trennen.

python


df = df.rename(columns={'Viel Stress\Anzahl der Personen': 'Viel Stressス者数', 'Viel Stressス\Prozentsatz der Menschen': 'Viel Stressス者の割合'})

Schritt 2. Schreiben Sie den DataFrame als CSV oder Excel

Ursprünglich hat Pandas die Funktion, DataFrame als CSV oder Excel zu schreiben.

Speichern als csv: df.to_csv (" filename.csv ", index = None) Als Excel speichern: df.to_excel (" filename.xlsx ", index = None)

Zusammenfassung

Abschließend werde ich diesen Code zusammenfassen.

pyhon


import pandas as pd
import tabula
 
# lattice=True, um die Zelle anhand der Tabellenachse zu bestimmen
dfs = tabula.read_pdf("Ergebnisbericht zur Implementierung des Zeneiren Stress Check Service 2018.pdf", lattice=True, pages = '40')

#Überprüfen Sie, ob Sie die PDF-Tabelle ordnungsgemäß erhalten können
for df in dfs:
    display(df)

# csv/Als Excel speichern(Diesmal dfs[0]nur)
df = dfs[0].rename(columns={'Viel Stress\Anzahl der Personen': 'Viel Stressス者数', 'Viel Stressス\Prozentsatz der Menschen': 'Viel Stressス者の割合'})
df.to_csv("PDF-Tabelle.csv", index=None) # csv
df.to_excel("PDF-Tabelle.xlsx", index=None) # Excel

Referenz

Hier sind die anderen Automatisierungsserien, die ich geschrieben habe. Bei Interesse bitte!

[Automatisierung] Lesen Sie Word-Dokumente mit Python https://qiita.com/konitech913/items/c30236bdf47775535e2f

[Automatisierung] Konvertieren Sie Python-Code in eine exe-Datei https://qiita.com/konitech913/items/6259f13e057bc25ebc23

[Automatisierung] Senden Sie Outlook-E-Mails mit Python https://qiita.com/konitech913/items/51867dbe24a2a4272bb6

[Automatisierung] Lesen Sie Outlook-E-Mails mit Python https://qiita.com/konitech913/items/8a285522b0c118d5f905

[Automatisierung] Lesen Sie E-Mails (Nachrichtendatei) mit Python https://qiita.com/konitech913/items/fa0cf66aad27d16258c0

[Automatisierung] Bedienen Sie die Zwischenablage mit Python und fügen Sie die Tabelle in Excel ein https://qiita.com/konitech913/items/83975332e395a387eace

Recommended Posts

[Automatisierung] Extrahieren Sie die Tabelle als PDF mit Python
Lesen Sie Tabellendaten in einer PDF-Datei mit Python
Extrahieren Sie die Tabelle der Bilddateien mit OneDrive & Python
Konvertieren Sie das Bild in .zip mit Python in PDF
Extrahieren Sie die xz-Datei mit Python
[Automatisierung] Extrahieren Sie Outlook-Termine mit Python
Zeigen Sie Python 3 im Browser mit MAMP an
Ordnen Sie die in pythons models.py festgelegte Tabelle zu
[Python] Holen Sie sich die Dateien mit Python in den Ordner
PDF mit Python rastern
UI-Automatisierung mit Python
Extrahieren Sie E-Mail-Anhänge, die Thunderbird mit Python erhalten hat
Versuchen Sie, mit Python zu übersetzen, während Sie das PDF-Layout beibehalten
[Python] Holen Sie sich die Zahlen im Diagramm mit OCR
Crawlen Sie die im Twitter-Tweet enthaltene URL mit Python
Mit Python psycopg2 erhalten Sie Ergebnisse im Diktatformat
Schreiben Sie mit OpenCV-Python Zeichen in die Kartenillustration
[Python] So schreiben Sie den Tabellenstil mit python-pptx um [python-pptx]
Schaben mit Selen in Python
Betreiben Sie LibreOffice mit Python
Finde Fehler in Python
Debuggen mit pdb in Python
OCR aus PDF in Python
Umgang mit Sounds in Python
Scraping mit Selen in Python
Scraping mit Tor in Python
Tweet mit Bild in Python
Kombiniert mit Ordnungszahl in Python
Integrieren Sie PDF-Dateien in Python
UI-Automatisierung Teil 2 in Python
Rufen Sie die API mit python3 auf.
Extrahieren Sie Bilder und Tabellen mit Python aus PDF, um die Berichtslast zu verringern
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
So extrahieren Sie einen Termin in Google Kalender mit Python
Wahrscheinlich der einfachste Weg, um mit Python 3 ein PDF zu erstellen
Bearbeiten Sie die Zwischenablage in Python und fügen Sie die Tabelle in Excel ein
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Generieren Sie mit Python automatisch eine Häufigkeitsverteilungstabelle auf einmal
Extrahieren Sie mehrere Listenduplikate in Python
Zahlenerkennung in Bildern mit Python
Testen mit Zufallszahlen in Python
Abrufen der arXiv-API in Python
Extrahieren Sie den Maximalwert mit Pandas.
GOTO in Python mit erhabenem Text 3
Arbeiten mit LibreOffice in Python: Importieren
Konvertieren Sie Markdown in Python in PDF
Python im Browser: Brythons Empfehlung
Speichern Sie die Binärdatei in Python
[Mit Python automatisiert! ] Teil 1: Datei einstellen
Scraping mit Selen in Python (Basic)
Klicken Sie in Python auf die Sesami-API
CSS-Analyse mit cssutils in Python
[Automatisierung] Senden Sie Outlook-E-Mails mit Python
Numer0n mit Elementen, die mit Python erstellt wurden
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich das Wetter mit Python-Anfragen 2
Öffnen Sie UTF-8 mit Stückliste in Python