искать «не-содержать» на кадре данных в пандах

Я выполнил некоторые поиски и не могу понять, как фильтровать dataframe с помощью df["col"].str.contains(word) , однако мне интересно, есть ли способ сделать обратное: фильтровать dataframe комплиментом этого набора. например: к действию !(df["col"].str.contains(word)) .

Можно ли это сделать с DataFrame метода DataFrame ?

3 Solutions collect form web for “искать «не-содержать» на кадре данных в пандах”

Вы можете использовать инвертированный (~) оператор (который действует как не для булевых данных):

 ~df["col"].str.contains(word) 

содержит также принимает регулярное выражение …

У меня были проблемы с символом not (~), так что вот еще один путь из другого потока StackOverflow :

  df[df["col"].str.contains('this'|'that')==False] 

Я должен был избавиться от значений NULL перед использованием команды, рекомендованной Энди выше. Пример:

 df = pd.DataFrame(index = [0, 1, 2], columns=['first', 'second', 'third']) df.ix[:, 'first'] = 'myword' df.ix[0, 'second'] = 'myword' df.ix[2, 'second'] = 'myword' df.ix[1, 'third'] = 'myword' df first second third 0 myword myword NaN 1 myword NaN myword 2 myword myword NaN 

Теперь выполните команду:

 ~df["second"].str.contains(word) 

Я получаю следующую ошибку:

 TypeError: bad operand type for unary ~: 'float' 

Сначала я избавился от значений NULL, используя dropna () или fillna (), и без проблем перезапустил команду.

  • pandas DataFrame снижает индекс при переходе на kdb + (используя qPython API)
  • Лучший способ подсчета количества строк с отсутствующими значениями в pandas DataFrame
  • Эффективный способ применения нескольких фильтров к pandas DataFrame или Series
  • Подсчет ненулевых значений в каждом столбце фрейма данных в python
  • Удалять нецифровые значения из серии
  • numpy.where () с 3 или более условиями
  • Применение нескольких функций к нескольким столбцам группы
  • Получать подстроку из кадра данных pandas при фильтрации
  • Python - лучший язык программирования в мире.