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: как фильтровать строки, содержащие определенную строку

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *