(Панды): в чем разница ISIN () и содержит () - PullRequest
0 голосов
/ 31 октября 2018

Я хочу знать, присутствует ли конкретная строка в некоторых столбцах моего информационного кадра (разные строки для каждого столбца). Из того, что я понимаю, isin написано для фреймов данных, но может работать и для Series, в то время как str.contains лучше работает для Series. На самом деле я не понимаю, как мне выбирать между двумя.

Заранее большое спасибо за ответ, я искал похожие вопросы, но не нашел объяснения, что выбрать между ними.

1 Ответ

0 голосов
/ 31 октября 2018

.isin проверяет, содержится ли каждое значение в столбце в списке произвольных значений. Примерно эквивалентно value in [value1, value2].

.contains проверяет, содержатся ли произвольные значения в каждом значении в столбце. Примерно эквивалентно substring in large_string.

Другими словами, .isin работает по столбцам и доступен для всех типов данных. .contains работает поэлементно и имеет смысл только при работе со строками (или значениями, которые могут быть представлены в виде строк).

Из официальной документации:

Series.isin (значения)

Проверьте, содержатся ли значения в Серии. Возвращает логическую Серию, показывающую, является ли каждый элемент Серии точно соответствует элементу в переданной последовательности значений.


Series.str.contains (pat, case = True, flags = 0, na = nan, ** ** регулярное выражение = True)

Проверка, содержится ли шаблон или регулярное выражение в строка серии или индекса.

Возвращает логический ряд или индекс в зависимости от того, является ли данный шаблон или регулярное выражение содержится в строке серии или индекса.

Примеры:

print(df)
#     a
# 0  aa
# 1  ba
# 2  ca

print(df[df['a'].isin(['aa', 'ca'])])
#     a
# 0  aa
# 2  ca

print(df[df['a'].str.contains('b')])
#     a
# 1  ba
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...