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