Binlik işareti için virgül içeren dizeler olarak sayılar içeren bir DataFrame'im var. Onları şamandıraya dönüştürmem gerekiyor.
a = [['1,200', '4,200'], ['7,000', '-0.03'], [ '5', '0']]
df=pandas.DataFrame(a)
Locale.atof kullanmam gerektiğini tahmin ediyorum. Aslında
df[0].apply(locale.atof)
beklendiği gibi çalışıyor. Bir dizi şamandıra alıyorum.
Ancak bunu DataFrame'e uyguladığımda bir hata alıyorum.
df.apply(locale.atof)
TypeError: ("seri dönüştürülemiyor", 0 'dizininde meydana geldi)
ve
df[0:1].apply(locale.atof)
başka bir hata veriyor:
ValueError: ('float () için geçersiz hazır bilgi: 1.200', 0 dizininde u 'oluştu')
Öyleyse, bunu DataFrame
dizelerin bir DataFrame'ine nasıl dönüştürebilirim ?
apply
bir DataFrame'de bütün bir sütunu işleve bir dizi olarak aktarıyor (bu durumdalocale.atof
, bir dizge bekleniyor).applymap
Aşağıdaki cevapta @AndyHayden'ın yaptığı yöntemi kullanırsanız, bunu gayet iyi yapabilmelisiniz.