Saya memiliki DataFrame yang berisi angka sebagai string dengan koma untuk penanda ribuan. Saya perlu mengubahnya menjadi float.
a = [['1,200', '4,200'], ['7,000', '-0.03'], [ '5', '0']]
df=pandas.DataFrame(a)
Saya rasa saya perlu menggunakan locale.atof. Memang
df[0].apply(locale.atof)
bekerja seperti yang diharapkan. Saya mendapatkan Serangkaian pelampung.
Tetapi ketika saya menerapkannya ke DataFrame, saya mendapatkan kesalahan.
df.apply(locale.atof)
TypeError: ("tidak dapat mengonversi rangkaian menjadi", u'occurred pada indeks 0 ')
dan
df[0:1].apply(locale.atof)
memberikan kesalahan lain:
ValueError: ('literal tidak valid untuk float (): 1.200', u'occurred pada indeks 0 ')
Jadi, bagaimana cara mengonversi DataFramestring ini menjadi DataFrame of floats?
applypada DataFrame melewati seluruh kolom ke fungsi sebagai rangkaian (dalam hal inilocale.atof, yang mengharapkan string). Jika Anda menggunakanapplymapmetode yang dilakukan @AndyHayden pada jawaban di bawah, Anda seharusnya dapat melakukannya dengan baik.