удалить часть строки перед определенным шаблоном

1

У меня есть кадр данных pandas со столбцом, где мне нужно получить конкретные имена. Единственная проблема заключается в том, что эти имена не всегда находятся в одном месте, и все значения этих столбцов не имеют одинаковой длины, поэтому я не могу использовать функцию split. Тем не менее, я заметил, что перед этими именами всегда есть комбинация от 4 до 7 цифр. Я считаю это идентификатором имени.
Итак, как я могу использовать регулярное выражение, чтобы пройти через этот столбец и получить нужные мне имена. Вот пример из ноутбука jupyter:

 df['info']
 csx_Gb009_broken screen_231400_Iphone 7
 000345_SamsungS8_tfes_Vodafone_is56t34_3G
 Ins45_56003_Huawei P8_

Я хочу что-то вроде этого:

 df['Phones']
 Iphone 7
 SamsungS8
 Huawei P8

Я хочу иметь что-то вроде выше, зная, что эти имена приходят до комбинации от 4 до 7 цифр и заканчиваются подчеркиванием.

Теги:
pandas

1 ответ

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

Вы можете использовать

df['Phones'] = df['info'].str.extract(r'\d{4}_([^_]+)')

Шаблон соответствует:

  • \d{4} - 4 цифры
  • _ - знак подчеркивания
  • ([^_]+) - Захват группы 1 (это значение будет возвращено str.extract): один или несколько символов, кроме _.

См. Демо-версию regex.

  • 1
    Очень хорошо объяснил. Спасибо

Ещё вопросы

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