Pandas. Замена символа в колонке
Люди опытные, помогите разобраться. Из яндекс метрики приходит колонка goals_id. В ней данные с лишними символами вот в таком виде:
Я эту колонку чищу, что бы оставались одни числа:
Вроде бы задача то элементарная, НО... Один раз меняет. Все квадратные скобки удаляются. На следующий день использую этот же код с новым df, не меняет. Выдаёт df без изменений.
Уже голову сломал, как так может быть, что код который еще вчера работал, сегодня уже не исполняет действия с новым датафреймом.
Кто-нибудь с таким сталкивался?
Ответы (2 шт):
Чтобы заменить не всё значение целиком, а символы в текстовой колонке, надо использовать не Series.replace, а Series.str.replace . Поскольку Pandas меняет дефолтное значение с regex=True на False, лучше явно указывать значение. В вашем случае можно сделать одно из двух
df['goals_id'].str.replace('[', '', regex=False).replace(']', '', regex=False)
df['goals_id'].str.replace('\[|\]', '', regex=True)
а вот убрать все "пустые списки" можно и при помощи Series.replace
df['goals_id'].replace('[]', '', regex=False)
Это можно сделать также с помощью .str.strip()
df.goals_id = df.goals_id.str.strip('[]')

!['df['goals_id']=df['goals_id'].replace({'[':'', ']':''})'](https://i.stack.imgur.com/dFc3N.jpg)