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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *