Pandas: como filtrar linhas com base no comprimento da string


Você pode usar os seguintes métodos para filtrar linhas contendo uma string de comprimento específico em um DataFrame do pandas:

Método 1: Filtrar linhas com base no comprimento da string em uma coluna

 #filter rows where col1 has a string length of 5
df. loc [df[' col1 ']. str . len () == 5 ]

Método 2: Filtrar linhas com base no comprimento da string de várias colunas

 #filter rows where col1 has string length of 5 and col2 has string length of 7
df. loc [(df[' col1 ']. str . len () == 5 ) & (df[' col2 ']. str . len () == 7 )]

Os exemplos a seguir mostram como usar cada método na prática com o seguinte DataFrame do pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' conf ': ['East', 'East', 'North', 'West', 'North', 'South'],
                   ' pos ': ['Guard', 'Guard', 'Forward', 'Center', 'Center', 'Forward'],
                   ' points ': [5, 7, 7, 9, 12, 9]})

#view DataFrame
print (df)

    conf pos points
0 East Guard 5
1 East Guard 7
2 North Forward 7
3 West Center 9
4 North Center 12
5 South Forward 9

Exemplo 1: Filtrar linhas com base no comprimento da string em uma coluna

O código a seguir mostra como filtrar linhas do DataFrame que possuem um comprimento de string 5 na coluna conf :

 #filter rows where conf has a string length of 5
df. loc [df[' conf ']. str . len () == 5 ]

	conf pos points
2 North Forward 7
4 North Center 12
5 South Forward 9

Somente as linhas onde a coluna conf tem um comprimento de string de 5 são retornadas.

Podemos ver que duas strings diferentes atendem a este critério na coluna conf :

  • “Norte”
  • “Sul”

Ambas as strings têm um comprimento de 5 .

Exemplo 2: Filtrar linhas com base no comprimento da string de múltiplas colunas

O código a seguir mostra como filtrar linhas do DataFrame que possuem um comprimento de string 5 na coluna conf e um comprimento de string 7 na coluna pos :

 #filter rows where conf has string length of 5 and pos has string length of 7
df. loc [(df[' conf ']. str . len () == 5 ) & (df[' pos ']. str . len () == 7 )]

        conf pos points
2 North Forward 7
5 South Forward 9

Somente as linhas onde a coluna conf tem um comprimento de string de 5 e a coluna pos tem um comprimento de força de 7 são retornadas.

Nota : Você pode encontrar a documentação completa da função str.len() no pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Como excluir linhas no Pandas DataFrame com base na condição
Como filtrar um DataFrame do Pandas em múltiplas condições
Como usar o filtro “NOT IN” no Pandas DataFrame

Add a Comment

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