введите описание изображения здесь
У меня есть Dataframe (300 000 строк) с 4 столбцами. У меня есть столбец «Модель», где у меня есть следующие примеры значений.
- 1) CPL40AUP50 (B, W) (бланк, EM, PCEM, MSEM) 2) CPL40AUP50 (B, W) (400, MS)
3) CPL40AUP50 (B, W) PC 4) CPL40AUP50 (B, W) PCMS 5) CPL40AUP50 [B, W] [Бланк,
400] 6) CPL40AUP XXXX XXXXX
В поле модели любое значение, например (A, B), означает, что оно может быть либо A, либо B.
Например, поле 2 означает, что возможно 4 комбинации
CPL40AUP50B400
CPL40AUP50BMS
CPL40AUP50W400
CPL40AUP50WMS
а поле 6 означает CPL 40 AUP "XXXX" "XXXXX" - каждый раз, когда имеется более 2 непрерывных XXX, это означает, что любой символ принимается на этих позициях. Количество XXX = количество символов в этом месте
Пример кадра данных прилагается.
Прикрепление образца в качестве словаря
{'Модель №': {152001: 'CPL40AUP50 (B, W) (Бланк, EM, PCEM, MSEM)',
152103: «CPL40AUP50 (B, W) (400, MS)»,
152192: «CPL40AUP50 (B, W) PC»,
152196: «CPL40AUP50 (B, W) PCMS»,
291083: 'CPL40AUP50 [B, W] [Blank, 400]'},
«Идентификатор продукта»: {152001: «PGK58TGD»,
152103: «P5QBAPTD»,
152192: «PFNJED7R»,
152196: «PYSCGR1W»,
291083: 'PH57RZA3'},
«Сообщаемое CCT»: {152001: 5000.0,
152103: 5000,0,
152192: 5000,0,
152196: 5000,0,
291083: 5000,0},
«Сообщаемая мощность»: {152001: 41.07,
152103: 41,07,
152192: 41,07,
152196: 41,07,
291083: 40.0}}
Часть 1
Я хочу найти номер модели, который хранится в переменной.
a = CPL40AUP50B400 в этом столбце и возвращает всю строку, где может существовать эта возможная комбинация.
Я хочу, чтобы был найден только точный критерий поиска и вывести строку, а не частичное совпадение строки
Я заменил все квадратные скобки "[]" в скобках "()"
Я заменил всю запятую "," на '|'
Я сделал это в мысли об использовании функций регулярных выражений. Но я не могу продолжить.
Часть 2
Чтобы найти, когда есть XXX. Если есть XXX, это означает, что вместо XXX может быть любой символ.
Пример: 6) CPL40AUP XXXX XXXXX
Значит, CPL40AUP AAAA AAAAA или CPL40AUP BBBB 11111
Все что угодно может прийти вместо XXX. Так что мне нужно найти строку, где есть номер модели, который совпадает со всеми другими символами, кроме XXX