2016-03-30 14 views
1

Ich habe eine CSV-Datei mit einigen Zellen, die Dollarzeichen haben (z. B. $46.5). Ich erzwinge alle Typen numpy.float64 in der Funktion pandas.read_csv(). Es beschwert sich über ValueError: could not convert string to float: $46.5. Gibt es einen Weg, damit sauber umzugehen?Pandas read_csv ignorieren Dollarzeichen beim Parsen von Zahlen

+1

Sie müssten und als Nachbearbeitungsschritt Gußband oder eine Methode 'converters' param für' read_csv' geben – EdChum

+0

Versuchen Sie Gleitkommazahlen für Währung zu verwenden? Sie sollten wahrscheinlich 'decimal' verwenden: http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency –

Antwort

3

Sie können einen Konverter für die entsprechende Spalte (n) hinzufügen:

pd.DataFrame({'col1': ['$46.51', '$38.00', 40], 
       'col2': [1, 2, 3]}).to_csv('test_df.csv', index=False) 

>>> pd.read_csv('test_df.csv', converters={'col1': lambda s: float(s.replace('$', ''))}) 
    col1 col2 
0 46.51  1 
1 38.00  2 
2 40.00  3 
+2

Sie müssen wahrscheinlich die gleiche Logik für hinzufügen Kommas, oder es wird versuchen, $ 1.437,22 zu ersetzen – flyingmeatball

Verwandte Themen