2016-03-30 14 views
1

Dolar işareti olan bazı hücrelerle (ör. $46.5) bir csv dosyası var. pandas.read_csv() işlevinde numpy.float64 olmak için tüm türleri zorluyorum. ValueError: could not convert string to float: $46.5 hakkında şikayet ediyor. Bunu temiz bir şekilde halletmenin bir yolu var mı?Pandalar read_csv sayıları ayrıştırırken dolar işaretini yok sayıyor

Alakalı kolon (ler) için bir dönüştürücü ekleyebilir
+1

için şerit ve sonrası bir işlem adımı olarak döküm veya read_csv' 'için converters' param 'için bir yöntem geçmek gerekir – EdChum

+0

Para birimi için kayan nokta sayıları kullanmaya mı çalışıyorsunuz? Muhtemelen 'decimal' kullanmalısınız: http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency –

cevap

3

:

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

Muhtemelen aynı mantığı eklemeniz gerekecek. virgül, ya da 1.437.22 $ yerine olmaya çalışacak bomba – flyingmeatball

İlgili konular