Pandas: як використовувати isin для кількох стовпців


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

Спосіб 1: фільтруйте, якщо кілька стовпців відповідають певним значенням

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

Цей конкретний приклад фільтрує DataFrame для рядків, у яких стовпець команди дорівнює “A” , а стовпець позиції дорівнює “Guard”.

Спосіб 2. Фільтр, де принаймні один стовпець відповідає певному значенню

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

Цей конкретний приклад фільтрує DataFrame для рядків, у яких стовпець команди дорівнює “A” або стовпець позиції дорівнює “Guard”.

Наступні приклади показують, як використовувати кожен метод на практиці з такими pandas DataFrame:

 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” , а стовпець позиції дорівнює “Guard”.

 #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” , а стовпець позиції дорівнює “Guard”.

Приклад 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: як відфільтрувати «Не містить»
Pandas: як фільтрувати рядки, що містять певний рядок

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *