Pandas: как использовать isin для нескольких столбцов


Вы можете использовать следующие методы с функцией pandas isin() для фильтрации на основе нескольких столбцов в DataFrame pandas:

Способ 1. Фильтрация, когда несколько столбцов равны определенным значениям

 df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]

В этом конкретном примере DataFrame фильтруется для строк, в которых столбец команды равен «A» , а столбец позиции — «Охранник».

Способ 2. Фильтр, при котором хотя бы один столбец соответствует определенному значению.

 df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]

В этом конкретном примере DataFrame фильтруется для строк, в которых столбец команды равен «A» или столбец позиции равен «Охранник».

В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['Guard', 'Guard', 'Forward', 'Forward',
                                'Guard', 'Guard', 'Forward', 'Forward'],
                   ' points ': [11, 18, 10, 22, 26, 35, 19, 12]})
                   
#view DataFrame
print (df)

  team position points
0 A Guard 11
1 A Guard 18
2 A Forward 10
3 A Forward 22
4 B Guard 26
5 B Guard 35
6 B Forward 19
7 B Forward 12

Пример 1. Фильтр, в котором несколько столбцов соответствуют определенным значениям

Мы можем использовать следующий синтаксис, чтобы отфильтровать DataFrame, чтобы он содержал только строки, в которых столбец команды равен «A» , а столбец позиции — «Охранник».

 #filter rows where team column is 'A' and position column is 'Guard'
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]

#view filtered DataFrame
print (df)

  team position points
0 A Guard 11
1 A Guard 18

Обратите внимание, что в отфильтрованном DataFrame остаются только строки, в которых столбец команды равен «A» , а столбец позиции — «Охранник».

Пример 2. Фильтр, в котором хотя бы один столбец соответствует определенному значению.

Мы можем использовать следующий синтаксис, чтобы отфильтровать DataFrame, чтобы он содержал только строки, в которых столбец команды равен «A» или столбец позиции равен «Guard».

 #filter rows where team column is 'A' or position column is 'Guard'
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]

#view filtered DataFrame
print (df)

  team position points
0 A Guard 11
1 A Guard 18
2 A Forward 10
3 A Forward 22
4 B Guard 26
5 B Guard 35

Обратите внимание, что в отфильтрованном DataFrame остаются только строки, в которых столбец команды равен «A» или столбец позиции равен «Guard».

Примечание . Полную документацию по функции pandas isin() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Pandas: как добавить фильтр в сводную таблицу
Панды: как фильтровать «Не содержит»
Pandas: как фильтровать строки, содержащие определенную строку

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

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