У мене є DataFrame, який містить числа у вигляді рядків із комами для маркера тисяч. Мені потрібно перетворити їх на плаваючі.
a = [['1,200', '4,200'], ['7,000', '-0.03'], [ '5', '0']]
df=pandas.DataFrame(a)
Я здогадуюсь, що мені потрібно використовувати locale.atof. Справді
df[0].apply(locale.atof)
працює, як очікувалося. Я отримую серію поплавців.
Але коли я застосовую його до DataFrame, я отримую помилку.
df.apply(locale.atof)
TypeError: ("не вдається перетворити серію в", u'виник за індексом 0 ')
і
df[0:1].apply(locale.atof)
видає чергову помилку:
ValueError: ('недійсний літерал для float (): 1200', u'виник в індексі 0 ')
Отже, як мені перетворити ці DataFrame
рядки на DataFrame з поплавками?
apply
на DataFrame передає цілий стовпець функції як серію (у цьому випадкуlocale.atof
, яка очікує рядок). Якщо ви використовуєтеapplymap
метод, який робить @AndyHayden у відповіді нижче, ви зможете це зробити чудово.