Как убрать запятые из ВСЕХ колонок в пандах сразу - PullRequest
0 голосов
/ 09 июля 2019

У меня есть фрейм данных, где все столбцы должны быть числами.При чтении некоторых из них читали запятые.Я знаю, что один столбец можно исправить с помощью

df['x']=df['x'].str.replace(',','')

Однако это работает только для объектов серии, а не для всего фрейма данных.Существует ли элегантный способ применить его ко всему фрейму данных, поскольку каждая запись в фрейме данных должна быть числом.

PS: Чтобы убедиться, что я могу str.replace, я сначала преобразовал фрейм данных в str, используя

df.astype('str')

Итак, я понимаю, мне придется преобразовать их все в числовые один раззапятая удалена

Ответы [ 2 ]

2 голосов
/ 09 июля 2019

Числовые столбцы не имеют ,, поэтому преобразование в строки не требуется, используйте только DataFrame.replace с regex=True для замены подстрок:

df = df.replace(',','', regex=True)

Или:

df.replace(',','', regex=True, inplace=True)

И последнее преобразование столбцов строк в числовые, спасибо @ anki_91:

c = df.select_dtypes(object).columns
df[c] = df[c].apply(pd.to_numeric,errors='coerce')
1 голос
/ 09 июля 2019

Ну, вы можете просто сделать:

df = df.apply(lambda x: x.str.replace(',', ''))

Надеюсь, это поможет!

...