Pandas / read_csv / ValueError / could not convert string to float: '49,085'
Verfasst: Montag 20. März 2023, 14:57
Hallo,
ich lese eine csv Datei über eine URL Adresse ein. Beim Großteil der Daten handelt es sich um ganze Zahlen, also Integer. Natürlich könnte ich jetzt nach dtype= alle Header aufführen und individuell den Datentyp zuweisen. Da ich mir jedoch Codezeilen sparen möchte habe ich es wie in folgendem Codeabschnitt gemacht. Ich sage: "mach mir alles zu int64 und konvertiere (converters) mir nachfolgende Spalten zu den Datentypen die ich individuell angegeben habe".
Wenn ich diesen Codeabschnitt:
hinter dtype= schreibe funktioniert der Code und macht mir aus FETTGEWICHT und FETTTEMPERATUR einen float, obwohl das Dezimaltrennzeichen ein Komma ist. Ich habe in der Funktion ja auch angegeben
Wenn ich den Codeabschnitt jedoch so wie oben schreibe:
bekomme ich einen
Kann mir jemand helfen?
Danke!
ich lese eine csv Datei über eine URL Adresse ein. Beim Großteil der Daten handelt es sich um ganze Zahlen, also Integer. Natürlich könnte ich jetzt nach dtype= alle Header aufführen und individuell den Datentyp zuweisen. Da ich mir jedoch Codezeilen sparen möchte habe ich es wie in folgendem Codeabschnitt gemacht. Ich sage: "mach mir alles zu int64 und konvertiere (converters) mir nachfolgende Spalten zu den Datentypen die ich individuell angegeben habe".
Code: Alles auswählen
dfData = pd.read_csv(URL, parse_dates=["ANGELEGT_AM"], dtype='int64', converters={'ANGELEGT_AM': str, 'ARBEITSPLATZ': str, 'MATERIALNUMMER': str, 'AUFTRAG': str, 'FETTGEWICHT': float, 'FETTTEMPERATUR': float}, dayfirst=True, decimal=",")
Code: Alles auswählen
'ANGELEGT_AM': str, 'ARBEITSPLATZ': str, 'MATERIALNUMMER': str, 'AUFTRAG': str, 'FETTGEWICHT': float, 'FETTTEMPERATUR': float
Code: Alles auswählen
decimal=","
Code: Alles auswählen
dtype='int64', converters={'ANGELEGT_AM': str, 'ARBEITSPLATZ': str, 'MATERIALNUMMER': str, 'AUFTRAG': str, 'FETTGEWICHT': float, 'FETTTEMPERATUR': float}
Code: Alles auswählen
ValueError: could not convert string to float: '49,085'
Danke!