Pandas: como selecionar colunas com base na condição
Você pode usar os seguintes métodos para selecionar colunas em um DataFrame do pandas por condição:
Método 1: selecione colunas com pelo menos uma linha que atenda à condição
#select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]
Método 2: selecione colunas onde todas as linhas atendem à condição
#select columns where all rows have a value greater than 2
df. loc [:, (df > 2 ). all ()]
Método 3: selecione colunas com pelo menos uma linha que atenda a várias condições
#select columns where at least one row has a value between 10 and 15
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]
Os exemplos a seguir mostram como usar cada método com o seguinte DataFrame do 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
Exemplo 1: selecione as colunas para as quais pelo menos uma linha atende à condição
Podemos usar o seguinte código para selecionar colunas do DataFrame onde pelo menos uma linha da coluna tem um valor maior que 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
Observe que as colunas maçãs e bananas são retornadas porque essas colunas têm pelo menos uma linha com valor maior que 2.
Exemplo 2: Selecione colunas onde todas as linhas atendem à condição
Podemos usar o seguinte código para selecionar colunas do DataFrame onde cada linha da coluna possui um valor maior que 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
Observe que apenas a coluna maçãs é retornada porque é a única coluna onde cada linha da coluna possui um valor maior que 2.
Exemplo 3: selecione colunas para as quais pelo menos uma linha atenda a várias condições
Podemos usar o seguinte código para selecionar colunas do DataFrame onde pelo menos uma linha da coluna tem um valor entre 10 e 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
Observe que apenas a coluna bananas é retornada porque é a única coluna onde pelo menos uma linha da coluna tem um valor entre 10 e 15.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:
Como selecionar colunas por nome no Pandas
Como selecionar colunas por índice no Pandas
Como selecionar colunas contendo uma string específica no Pandas