Pandas: фильтровать по столбцу, не равному определенным значениям
Вы можете использовать следующие методы для фильтрации DataFrame pandas, где столбец не соответствует определенным значениям:
Способ 1. Фильтрация, когда столбец не равен определенному значению.
#filter rows where team column is not equal to 'Nets' df_filtered = df[df[' team '] != ' Nets ']
Способ 2. Фильтрация, когда столбец не равен нескольким конкретным значениям.
#filter rows where team column is not equal to 'Nets', 'Mavs' or 'Kings' df_filtered = df[ ~ df[' team ']. isin ([' Nets ', ' Mavs ', ' Kings '])]
В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Nets', 'Nets', 'Heat', 'Heat', 'Kings'], ' points ': [22, 28, 35, 34, 29, 28, 23]}) #view DataFrame print (df) team points 0 Mavs 22 1 Mavs 28 2 Nets 35 3 Nets 34 4 Heat 29 5 Heat 28 6 Kings 23
Пример 1. Фильтр, в котором столбец не равен определенному значению
Мы можем использовать следующий синтаксис, чтобы отфильтровать DataFrame, чтобы он содержал только строки, в которых столбец команды не равен «Nets»:
#filter rows where team column is not equal to 'Nets' df_filtered = df[df[' team '] != ' Nets '] #view filtered DataFrame print (df_filtered) team points 0 Mavs 22 1 Mavs 28 4 Heat 29 5 Heat 28 6 Kings 23
Обратите внимание, что каждая строка, в которой именем команды было «Nets», была отфильтрована из DataFrame.
Примечание . Символ != в пандах означает «не равно».
Пример 2. Фильтр, в котором столбец не равен нескольким конкретным значениям
Мы можем использовать следующий синтаксис, чтобы отфильтровать DataFrame, чтобы он содержал только строки, в которых столбец команды не равен «Nets», «Mavs» или «Kings»:
#filter rows where team column is not equal to 'Nets', 'Mavs' or 'Kings' df_filtered = df[ ~ df[' team ']. isin ([' Nets ', ' Mavs ', ' Kings '])] #view filtered DataFrame print (df_filtered) team points 4 Heat 29 5 Heat 28
Обратите внимание, что каждая строка, в которой названием команды было «Нетс», «Мавс» или «Кингз», была отфильтрована из DataFrame.
Примечание . Символ ~ означает «нет» в пандах.
Документация : Полную документацию по функции pandas isin() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи panda:
Pandas: как добавить фильтр в сводную таблицу
Панды: как фильтровать «Не содержит»
Pandas: как фильтровать строки, содержащие определенную строку