Pandas: как выбирать столбцы по условию


Вы можете использовать следующие методы для выбора столбцов в DataFrame pandas по условию:

Способ 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 ()]

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

 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

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

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