У меня есть кадр данных 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 цифр и заканчиваются подчеркиванием.
Вы можете использовать
df['Phones'] = df['info'].str.extract(r'\d{4}_([^_]+)')
Шаблон соответствует:
\d{4}
- 4 цифры_
- знак подчеркивания([^_]+)
- Захват группы 1 (это значение будет возвращено str.extract
): один или несколько символов, кроме _
.См. Демо-версию regex.