Pandas: як вибрати стовпці на основі умови
Ви можете використовувати такі методи, щоб вибрати стовпці в pandas DataFrame за умовою:
Спосіб 1: виберіть стовпці з принаймні одним рядком, який відповідає умові
#select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]
Спосіб 2. Виберіть стовпці, у яких усі рядки відповідають умові
#select columns where all rows have a value greater than 2
df. loc [:, (df > 2 ). all ()]
Спосіб 3: виберіть стовпці з принаймні одним рядком, який відповідає кільком умовам
#select columns where at least one row has a value between 10 and 15
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]
У наведених нижче прикладах показано, як використовувати кожен метод із такими pandas DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' apples ': [7, 3, 3, 4, 3], ' oranges ': [2, 0, 2, 0, 1], ' bananas ': [5, 0, 4, 0, 12]}, index=[' Farm1 ',' Farm2 ',' Farm3 ',' Farm4 ',' Farm5 ']) #view DataFrame print (df) apples oranges bananas Farm1 7 2 5 Farm2 3 0 0 Farm3 3 2 4 Farm4 4 0 0 Farm5 3 1 12
Приклад 1: виберіть стовпці, для яких хоча б один рядок відповідає умові
Ми можемо використовувати наступний код, щоб вибрати стовпці з DataFrame, де принаймні один рядок у стовпці має значення більше 2:
#select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]
apples bananas
Farm1 7 5
Farm2 3 0
Farm3 3 4
Farm4 0 0
Farm5 3 12
Зауважте, що повертаються обидва стовпці з яблуками та бананами , оскільки ці стовпці мають принаймні один рядок із значенням, більшим за 2.
Приклад 2: виберіть стовпці, у яких усі рядки відповідають умові
Ми можемо використовувати наступний код, щоб вибрати стовпці з DataFrame, де кожен рядок у стовпці має значення більше 2:
#select columns where every row has a value greater than 2
df. loc [:, (df > 2 ). all ()]
apples
Farm1 7
Farm2 3
Farm3 3
Farm4 4
Farm5 3
Зауважте, що повертається лише стовпець «яблука» , оскільки це єдиний стовпець, у якому кожен рядок у стовпці має значення більше 2.
Приклад 3: виберіть стовпці, для яких хоча б один рядок відповідає декільком умовам
Ми можемо використовувати наступний код, щоб вибрати стовпці з DataFrame, де принаймні один рядок у стовпці має значення від 10 до 15:
#select columns where every row has a value greater than 2
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]
bananas
Farm1 5
Farm2 0
Farm3 4
Farm4 0
Farm5 12
Зауважте, що повертається лише стовпець бананів , оскільки це єдиний стовпець, у якому принаймні один рядок має значення від 10 до 15.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:
Як вибрати стовпці за назвою в Pandas
Як вибрати стовпці за індексом у Pandas
Як вибрати стовпці, що містять певний рядок у Pandas