#python #python-3.x #pandas #string #data-cleaning
#python #python-3.x #pandas #строка #очистка данных
Вопрос:
У меня есть фрейм данных pandas, подобный следующему:
Date Title
Jan 1 Washington Running
Jan 2 Jefferson City Cycling
Jan 3 Springfield Running
...
Как я могу удалить слово «Running» или «Cycling» из всех заголовков? Я хотел бы получить:
Date Title
Jan 1 Washington
Jan 2 Jefferson City
Jan 3 Springfield
...
Ответ №1:
Вы захотите использовать модификаторы строк pandas. Вот документы для pandas.Series.str.replace()
. Это немного быстрее, чем обычная замена.
Отличный однострочный подход Mechanical_meat работает .str.replace()
также:
df['Title'].str.replace(r'(bRunningb|bCyclingb)','',regex=True)
Я подумал, что предложу альтернативу использованию df['Title'].str.replace('Running','')
and df['Title'].str.replace('Cycling','')
. Зачем делать это в два этапа? Это позволяет избежать регулярных выражений, которые могут быть «дорогостоящими». Запуск a timeit
на двух для небольших фреймов данных, хотя накладные расходы на выполнение replace дважды значительно выше, чем стоимость регулярных выражений. Я бы предположил, что для больших фреймов данных становится только хуже.