Как я могу фильтровать строки на основе регулярного выражения из одного столбца в другой

#python #regex #pandas

Вопрос:

У меня есть следующий фрейм данных

   ClientCode                                           FileName
0      123     123--filename
1      234     456--filename
2      345     345--filename
3      456     123--filename
4      567     567--filename
 

В принципе, мне нужно вернуть строки, в которых кода клиента НЕТ В поле имя файла

Это вернет строки 1,3 в приведенном выше примере

Однако я не знаю, возможно ли это даже с помощью простого выражения в фильтрации панд

Комментарии:

1. .str.split('--') и преобразуйте правильный тип dtype

2. Я не понимаю, раскол только расколы! он не будет фильтроваться

3. Да, разделить, а потом сравнить?

4. можете ли вы вставить все решение целиком? каким будет выражение фильтрации? разделение str создаст еще один столбец?

Ответ №1:

Используйте это:-

 df[~df['ClientCode'].eq(df['FileName'].str.split('--',expand=True)[0].astype(int))]