Выражение [^0-9.-]
представляет собой так называемое регулярное выражение , которое представляет собой специальную текстовую строку для описания шаблона поиска.С помощью регулярных выражений (или кратко ' RegEx ') вы можете извлекать определенные части строки.Например, вы можете извлечь foo
из строки 123foo456
.
. В RegEx при использовании []
вы определяете диапазон символов, который должен соответствовать.Например, [bac]
соответствует abc
в строке abcdefg
.[bac]
также можно переписать как [a-c]
.
Используя [^]
, вы можете отменить диапазон символов.Таким образом, RegEx [^a-c]
, примененный к приведенному выше примеру, будет соответствовать defg
.
Теперь вот уловка:
Поскольку ^
и -
имеют особое значение при использовании в регулярных выражениях, они должны быть помещены в определенные позиции в пределах []
для буквального соответствия.В частности, если вы хотите буквально сопоставить -
и хотите исключить его из диапазона символов, вы должны поместить его в крайнем правом конце из []
.
Собираем все вместе
RegEx '[^0-9.-]'
означает: «Совпадают все подстроки, которые не содержат цифры от 1 до 9, точку (.
) или тире (-
).Вы можете видеть, что ваше регулярное выражение применяется к некоторым примерным строкам здесь .
Функция pandas df.profit.str.contains('[^0-9.-]')
проверяет, соответствуют ли строки в столбце profit
вашего DataFrame этому RegEx и возвращает True
если они это сделают и False
если они этого не сделают.Результатом является панда Series
, содержащая результирующие значения True
/ False
.