Редактирование строк в фрейме данных Pandas

#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 дважды значительно выше, чем стоимость регулярных выражений. Я бы предположил, что для больших фреймов данных становится только хуже.