Замена «*» в фрейме данных панд

1

У меня есть dataframe значений.

mydf.head():

    Amount Date        Description

0   39.95  2017-03-30  Paypal *A2zkidsltd     
1    2.39  2017-04-01  Mcdonalds              
2    8.03  2017-04-01  Wm Morrison
3   34.31  2017-04-01  Wm Morrison
4   10.56  2017-04-03  Asda Superstore

Я хочу заменить все "*" ничем. Я использую функцию замены pandas в столбце Description.

mydf['Description'].replace('*','', inplace=True)

И посмотрите еще раз на результат:

mydf.head()

0   39.95 2017-03-30  Paypal *A2zkidsltd     
1    2.39 2017-04-01  Mcdonalds              
2    8.03 2017-04-01  Wm Morrison
3   34.31 2017-04-01  Wm Morrison
4   10.56 2017-04-03  Asda Superstore

Первая транзакция по-прежнему содержит "*".

Это видно для всех транзакций, содержащих "*".

Я просмотрел документацию;

https://pandas.pydata.org/pandas-docs/version/0.22.0/generated/pandas.DataFrame.replace.html

Однако я не вижу, где я ошибаюсь. Какая ошибка в моем коде или моем подходе?

Теги:
pandas

2 ответа

2
Лучший ответ

Ты можешь попробовать:

df['Description'] = df['Description'].str.replace('*','')

Кажется, что не существует опции для inplace поэтому нужно снова назначить column.

0

Попробуйте ускользнуть от него - * является специальным символом :)

mydf['Description'].replace('\*','', inplace=True)

Или, как говорит Сакул,

mydf['Description'].replace('*','', regex=False, inplace=True)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню