pandas str.contains () дает неправильные результаты?

1

Например;

pd.Series('ASKING CD.').str.contains('AS')
Out[58]: 
0    True
dtype: bool

pd.Series('ASKING CD.').str.contains('ASG')
Out[59]: 
0    False
dtype: bool

pd.Series('ASKING CD.').str.contains('SK.')
Out[60]: 
0    True
dtype: bool

Почему третий выход True? Нет "СК". последовательность в переданной строке. Символ "точка" ничего не значит?

Теги:
string
pandas

1 ответ

5
Лучший ответ

Regex . означает соответствие любому персонажу. Решения - это побег . или добавить параметр regex=False:

print(pd.Series('ASKING CD.').str.contains(r'SK\.'))
0    False
dtype: bool

print(pd.Series('ASKING CD.').str.contains('SK.', regex=False))
0    False
dtype: bool
  • 1
    Благодарю. Я попробовал «SK \». во-первых, но не понял. И теперь я заметил, что параметром по умолчанию было ** regex = True **. Это работает сейчас. Спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню