Подтвердить что ты не робот

Python Pandas: Как заменить символы в столбце данных?

У меня в столбце данных есть такой столбец:

range
(2,30)
(50,290)
(400,1000)
... 

и я хочу заменить запятую , на тире -. В настоящее время я использую этот метод, но ничего не изменилось.

org_info_exc['range'].replace(',', '-', inplace=True)

Кто-нибудь может помочь?

4b9b3361

Ответ 1

Используйте векторизованный str метод replace:

In [30]:

df['range'] = df['range'].str.replace(',','-')
df
Out[30]:
      range
0    (2-30)
1  (50-290)

EDIT

Итак, если мы посмотрим на то, что вы пытались и почему это не сработало:

df['range'].replace(',','-',inplace=True)

из документов мы видим это описание:

str или regex: str: строка, точно соответствующая to_replace, будет заменена со значением

Так как значения str не совпадают, замена не происходит, сравните со следующим:

In [43]:

df = pd.DataFrame({'range':['(2,30)',',']})
df['range'].replace(',','-', inplace=True)
df['range']
Out[43]:
0    (2,30)
1         -
Name: range, dtype: object

здесь мы получаем точное совпадение во втором ряду и происходит замена.

Ответ 2

Для всех, кто прибывает сюда из поиска Google, как выполнить замену строки во всех столбцах (например, если один имеет несколько столбцов, таких как столбец OP "диапазон"): Pandas имеет встроенный метод replace доступный для объекта dataframe.

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

Источник: Документы

Ответ 3

Замените все запятые подчеркиванием в именах столбцов

data.columns= data.columns.str.replace(' ','_',regex=True)