Использование str.contains () не находит строки после сигнала плюс (+) - PullRequest
1 голос
/ 20 ноября 2019

Я работаю с кодом для работы с фреймом данных, где в одном из столбцов есть строки типа «102334 + 2N» или «102334 + 2G» или «102334 + 3» и т. Д. При использовании str.contains () ничего не найдено после сигнала плюс (+).

Это работает довольно хорошо:

df.loc[df['SKU'].str.contains(r"102334", case=False), ["SKU", "DESCRIPTION"]]

Это находит все с "102334" плюс любые дополнительныеstring

df.loc[df['SKU'].str.contains(r"102334+", case=False), ["SKU", "DESCRIPTION"]]

Это ничего не находит:

df.loc[df['SKU'].str.contains(r"102334+2", case=False), ["SKU", "DESCRIPTION"]]

Буду признателен за любой ответ, который поможет мне понять, как его решить.

Результат правильный для: df.loc [df ['SKU']. str.contains (r "102334", case = False), ["SKU", "DESCRIPTION"]]

enter image description here

Результат неверный (последняя строка не ожидалась):

df.loc [df ['SKU']. Str.contains (r "102334+", case = False), ["SKU "," DESCRIPTION "]]

enter image description here

и последние результаты отсутствуют (ожидается от 1 до 3):

df.loc [df ['SKU']. str.contains (r "102334 + 2", case = False), ["SKU", "DESCRIPTION"]]

enter image description here

1 Ответ

0 голосов
/ 21 ноября 2019

С помощью параметра Regex удалось решить проблему. Правильное выражение: df.loc [df ['SKU']. Str.contains (r "102334 + 2", case = False, regex = False), ["SKU", "DESCRIPTION", "VERSÃO", "BU", "CPV_M", "CF_M"]]

Спасибо, спасибо за подсказку.

...