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

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

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