Mam DataFrame, która zawiera liczby jako ciągi z przecinkami dla znacznika tysięcy. Muszę je przekonwertować na pływaki.
a = [['1,200', '4,200'], ['7,000', '-0.03'], [ '5', '0']]
df=pandas.DataFrame(a)
Zgaduję, że muszę użyć locale.atof. W rzeczy samej
df[0].apply(locale.atof)
działa zgodnie z oczekiwaniami. Dostaję serię pływaków.
Ale kiedy stosuję go do ramki DataFrame, pojawia się błąd.
df.apply(locale.atof)
TypeError: ("nie można przekonwertować serii na", wystąpiło u'przy indeksie 0 ')
i
df[0:1].apply(locale.atof)
daje inny błąd:
ValueError: ('nieprawidłowy literał dla float (): 1,200', u'wystąpił w indeksie 0 ')
Jak więc przekonwertować to DataFramez ciągów na DataFrame elementów zmiennoprzecinkowych?
applyw DataFrame przekazuje całą kolumnę do funkcji jako serię (w tym przypadkulocale.atof, który oczekuje ciągu). Jeśli użyjeszapplymapmetody, którą @AndyHayden wykonuje w odpowiedzi poniżej, powinieneś być w stanie to zrobić dobrze.