Seite 1 von 1

Datenimport von Excel nach Python mit Komma und Punkt als Dezimalzeichen

Verfasst: Freitag 2. Februar 2024, 16:30
von funnyCoder
Hallo an alle!

Ich stehe gerade vor einem Problem und scheitere beim Importieren von Daten aus einer Exceltabelle nach Python. Ich weiß, das klingt sehr einfach und mit pandas funktioniert das normalerweise auch wunderbar :) Leider sind meine Daten sehr inkonsistent, d. h. als Dezimalzeichen können entweder Punkte oder Kommas stehen und die Zahlen können auch verschiedene Nachkommastellen besitzen. In Python werden dann alle Kommas mit Punkten ersetzt und wenn in der letzten Nachkommastelle eine 0 ist, fällt diese weg. Mein Ziel ist es, im nächsten Schritt, die Einträge zu überprüfen, ob diese in korrekter wissenschaftlicher Schreibweise vorliegen. Nur dafür muss ich die Daten auch 1:1 importieren. Ich hoffe, ihr versteht am folgenden Beispiel, was ich meine :)

In Excel habe ich z. Bsp. folgende Spalte:
12,00
19,0
8.00
6.53
4,50
33.0
11,90
37,00
16,10
16,60

Wenn ich diese mithilfe von pandas einlese (auch mit dem Argument dtype=str), erhalte ich folgendes:
12
19
8.00
6.53
4.5
33.0
11.9
37
16.1
16.6

Und jetzt nochmal meine Frage: Wie kann ich die Daten, so wie diese in Excel stehen, 1:1 mit Punkt und Komma in Python übertragen?

Ich hab's auch schon mit openpyxl (mithilfe von ChatGPT) probiert, funktioniert leider auch nicht.

Code: Alles auswählen

excel_file = 'meine_excel_datei.xlsx'
workbook = openpyxl.load_workbook(excel_file, read_only=True)
sheet_name = 'Tabelle1'
sheet = workbook[sheet_name]
data = []
for row in sheet.iter_rows(values_only=True):
    data.append([str(cell) for cell in row])

workbook.close()
Please heeeelp

Re: Datenimport von Excel nach Python mit Komma und Punkt als Dezimalzeichen

Verfasst: Freitag 2. Februar 2024, 17:09
von __deets__
Indem du dir eine Funktion schreibst, die aus einem String mit Komma einen mit Punkt macht, und dann aus dem Ergebnis mit float(ergebnis) ein float. Und diese Funktion gibst du deinem read_csv/was-auch-immer Aufruf als Konverter mit, analog zu https://scipython.com/book2/chapter-9-d ... ataframes/

Re: Datenimport von Excel nach Python mit Komma und Punkt als Dezimalzeichen

Verfasst: Freitag 2. Februar 2024, 18:01
von __blackjack__
@__deets__: Wozu soll das gut sein? Dann hat man am Ende alles als `float`, also genau das was Pandas ja schon macht und was funnyCoder *nicht* will.

@funnyCoder: Warum willst Du so etwas komisches? In Zahlenfeldern in Excel stehen immer *Zahlen*. Ob diese Zahl(en) mit . oder , oder sonstwie von Excel *angezeigt* werden, bestimmt die *Formatierung* der Zelle.

Weder Pandas noch Openpyxl sind dafür gemacht die *Darstellung* der Zahl auszulesen. Beide lesen die tatsächliche *Zahl* aus.

Re: Datenimport von Excel nach Python mit Komma und Punkt als Dezimalzeichen

Verfasst: Freitag 2. Februar 2024, 18:44
von funnyCoder
@__blackjack__ weil ich manchmal mit so komischen Exceltabellen zu tun habe :) durch viele händische Einträge können die Tabellen sehr durcheinander sein. Und da ich nicht selber alle Tabellen durchklicken und überprüfen möchte, schreibe ich gerade ein Programm, das mir sagen soll, welche Einträge oder Spalten "falsch" formatiert sind.
Aber der Tipp von @ __deets__ mit dem converter hat auf jeden Fall geholfen :D hab die Einträge jetzt nicht als float eingelesen, sondern tatsächlich jetzt so, wie ich wollte :D

Re: Datenimport von Excel nach Python mit Komma und Punkt als Dezimalzeichen

Verfasst: Samstag 3. Februar 2024, 15:39
von OSWALD
2.2.2024
Wie gut, dass ich zuletzt mich etwas mich Regressionen beschäftigt habe.
Al ich jetzt beim 'Maschinellen Rechnen kurz 'reingeschaut' habe, stiess ich
gleich auf zwei bekannte Begriffe:
Clustering und Logistische Regressionen.
Mit beiden Themen sollte ich mich jetzt auseiendersetzen.
Ich will es versuchen.
Eines weiß ich schon:
die logistische Regression hat ganz andere Dimensionen und
Probleme als die behandelten Beispiele.
OSWALD

Re: Datenimport von Excel nach Python mit Komma und Punkt als Dezimalzeichen

Verfasst: Sonntag 4. Februar 2024, 14:23
von OSWALD
Wie kam ich auf diese Seite?
Tut ,ir leid.Entschuldigung
OSWALD