2017-07-07 5 views
1

Ich versuche, ein Datenfeld von String in Float in Pandas zu konvertieren.Pandas: astype Fehler-String zu float (konnte String in float: '7,50' nicht konvertieren)

Dies ist das Feld:

In: 

print(merged['platnosc_total'].head(100)) 

Out: 

0  0,00 
1  4,50 
2  0,00 
3  0,00 
4  0,00 
5  4,50 
6  6,10 
7  7,99 
8  4,00 
9  7,69 
10 7,50 

Notiere die 7,50, in der letzten Zeile, die den Fehler zu verursachen scheint:

In: 

merged['platnosc_total'].astype(float) 

Out: 

ValueError: could not convert string to float: '7,50' 

dies, dass der Rest umgewandelt wurde, heißt das, und nur die Reihe mit 7,50 ist die Ursache?

Wie kann ich dieses Feld/Spalte tatsächlich floaten?

+0

Mögliche Duplikat [Ändern Pandas String Spalte mit Kommas in Float] (https://stackoverflow.com/questions/34462207/change-pandas-string-column-with- Kommas-in-float) – FLab

Antwort

0

Need replace zuerst:

print (merged['platnosc_total'].replace(',','.', regex=True).astype(float)) 
0 0.00 
1 4.50 
2 0.00 
3 0.00 
4 0.00 
5 4.50 
6 6.10 
7 7.99 
8 4.00 
Name: platnosc_total, dtype: float64 
+0

Danke. Ich wurde von meinem Excel voreingenommen, es verwendet "," für Dezimal statt "." - Nicht englische Version. – FilipB

+0

Und wenn Sie ['read_excel'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html) verwenden, gibt es keine automatische Konvertierung? Ich bin nur neugierig. – jezrael

+0

Ich nehme an, es gibt, aber ich importierte aus einer CSV-Datei, die Werte mit "," gespeichert. Was ich mit Voreingenommenheit meinte, war, dass ich annahm, dass das Koma für Float geeignet war, ich hatte einige Werte mit einem Punkt "." was ich sogar zurück zu Komma ersetzte, vorausgesetzt, dass, weil mein Excel Koma für Gleitkommazahlen verwendet, ich "," drin haben sollte, daher meine Überraschung, dass es einen Fehler gibt, wenn der Textwert in guter Form für die Konvertierung ist. – FilipB

Verwandte Themen