Pandas, Zeilenumbruch in Zelle

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
R0r3ch4ch
User
Beiträge: 2
Registriert: Mittwoch 16. März 2022, 13:16

Hu Hu zusammen,

ich habe folgendes Anliegen. Ich möchte eine HTML Datei auslesen und als CSV speichern. Das klappt auch soweit mit diesem Code:

Code: Alles auswählen

import pandas as pd
url = 'toimport.HTM'
df = pd.read_html(url)
df = df[0]
print(df)
df.to_csv('data.csv', index=False)
Das ist super, nun folgendes Problem. In der Original HTM(L) werden in einer Spalte in in den jeweiligen Zellen mehrere Nummern mit einem Zeichenumbruch angegeben. Beim auslesen und schreiben in die csv werden diese nun "falsch" ausgegeben.

Als Beispiel:

in der HTML steht:

Code: Alles auswählen

... 12<br>345<br>6... 
in der CSV steht:

Code: Alles auswählen

..., 123456, ...
Da die Nummern unterschiedliche Länge haben kann ich diese auch nicht einfach nach einer gewissen Anzahl "trennen".
Die HTML Datei wird aus einem anderen Programm generiert und ich kann diese leider nur bedingt beeinflussen (z.B. Reihenfolge und Bezeichnung der Spalten).

Nun die Frage, wie kann ich diesen Zeilenumbruch erkennen und behandeln. Am Besten wär es, wenn für jede Zeile innerhalb der Zelle eine neue Spalte in der csv erstellt wird. Da ich die CSV später weiterverarbeite wäre mir auch geholfen, wenn ich ein bestimmtes Zeichen dazwischen setze o.ä.

Oder gibt es einen anderen/besseren Ansatz dafür? Tipps?

Sorry, ich bin mit Python/Programmierungen nicht sehr bewandert.

LG und Vielen Dank
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

read_html ignoriert diese Tags, und ich habe keinen Weg gesehen, das zu verhindern.
Da mußt Du wohl oder übel die HTML-Seite mit BeautifulSoup selbst parsen.
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

Gibt auch gerade ein Issue auf Github inklusive PR dazu: https://github.com/pandas-dev/pandas/issues/29528.
Also ja, da musst du wohl aktuell noch 'händisch' ran. Hier eine Idee dazu: https://stackoverflow.com/questions/414 ... -read-html.
R0r3ch4ch
User
Beiträge: 2
Registriert: Mittwoch 16. März 2022, 13:16

Danke für euren Input! Ich guck mir das mal genauer an. Gebe anschließend Feedback.
Antworten