Como filtrar somente as linhas que interessam em uma tabela de dados usando Python? Neste tutorial mostramos os métodos de filtros de linhas disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.
O filtro de linhas é uma etapa presente em quase todo tratamento/limpeza de dados. Afinal, com tabelas de dados cada vez maiores, é necessário extrair somente as informações (linhas) relevantes para a análise dos dados. Sendo assim, vamos a um exemplo prático.
Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.
Dados de exemplo
Primeiro, coletamos online uma tabela de dados CSV de exemplo. A fonte dos dados é o Banco Central do Brasil e para coletar os dados também usamos a biblioteca pandas. Abaixo uma visão geral da tabela:
Indicador | IndicadorDetalhe | Data | DataReferencia | Media | Mediana | DesvioPadrao | Minimo | Maximo | numeroRespondentes | baseCalculo | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | IGP-M | NaN | 2023-02-10 | 2023 | 4.5840 | 4.5955 | 0.8950 | 2.6607 | 7.8000 | 73 | 0 |
1 | IGP-M | NaN | 2023-02-10 | 2024 | 4.3685 | 4.0650 | 1.1936 | 2.8000 | 9.9000 | 56 | 0 |
2 | IGP-M | NaN | 2023-02-10 | 2025 | 4.0136 | 3.9850 | 0.7051 | 3.0000 | 6.0000 | 50 | 0 |
3 | IGP-M | NaN | 2023-02-10 | 2026 | 3.8977 | 3.6000 | 0.6957 | 2.7900 | 5.5000 | 47 | 0 |
4 | IGP-M | NaN | 2023-02-10 | 2027 | 3.8798 | 3.8700 | 0.7446 | 2.5800 | 5.5000 | 42 | 0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
595 | IPCA | NaN | 2023-01-02 | 2022 | 5.6676 | 5.6379 | 0.1180 | 5.5433 | 6.1636 | 40 | 1 |
596 | IPCA | NaN | 2023-01-02 | 2023 | 5.5072 | 5.4631 | 0.4784 | 4.5197 | 6.9300 | 40 | 1 |
597 | IPCA | NaN | 2023-01-02 | 2024 | 3.8155 | 3.8448 | 0.4013 | 3.0000 | 5.0000 | 36 | 1 |
598 | IPCA | NaN | 2023-01-02 | 2025 | 3.5731 | 3.5000 | 0.5140 | 3.0000 | 5.0000 | 32 | 1 |
599 | IPCA | NaN | 2023-01-02 | 2026 | 3.5401 | 3.5000 | 0.5367 | 3.0000 | 5.0000 | 31 | 1 |
600 rows × 11 columns
Como filtrar as linhas da tabela?
Na tabela de exemplo há 600 linhas, mas talvez você não precise de todas elas. Para filtrar determinadas linhas de uma tabela usamos a função query()
com a sintaxe tabela.query("condicao")
, onde condicao
é uma expressão lógica dentro de uma string, na linguagem interna do pandas
, aplicada aos valores de uma coluna. As linhas que serão mantidas após o query()
são as linhas onde condicao
é verdadeiro (True
).
Como exemplo, suponha que você queira todas as linhas de uma tabela que possui o valor 2023
na coluna DataReferencia
, para tal filtro use uma condição de igualdade:
Indicador | IndicadorDetalhe | Data | DataReferencia | Media | Mediana | DesvioPadrao | Minimo | Maximo | numeroRespondentes | baseCalculo | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | IGP-M | NaN | 2023-02-10 | 2023 | 4.5840 | 4.5955 | 0.8950 | 2.6607 | 7.8000 | 73 | 0 |
5 | IGP-M | NaN | 2023-02-10 | 2023 | 4.4916 | 4.5525 | 0.9611 | 2.6607 | 7.8000 | 31 | 1 |
10 | IPCA | NaN | 2023-02-10 | 2023 | 5.7630 | 5.7883 | 0.4401 | 3.6387 | 6.9166 | 142 | 0 |
15 | IPCA | NaN | 2023-02-10 | 2023 | 5.7644 | 5.7742 | 0.4910 | 3.6387 | 6.9166 | 69 | 1 |
20 | IGP-M | NaN | 2023-02-09 | 2023 | 4.7252 | 4.6061 | 1.4370 | 2.8871 | 14.6000 | 70 | 0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
576 | IPCA | NaN | 2023-01-03 | 2023 | 5.4721 | 5.4488 | 0.5200 | 4.5092 | 6.9300 | 43 | 1 |
580 | IGP-M | NaN | 2023-01-02 | 2023 | 4.7308 | 4.6132 | 1.4779 | 2.4830 | 14.6000 | 69 | 0 |
585 | IGP-M | NaN | 2023-01-02 | 2023 | 4.3771 | 4.5260 | 0.8942 | 2.4830 | 5.7000 | 18 | 1 |
591 | IPCA | NaN | 2023-01-02 | 2023 | 5.3238 | 5.3005 | 0.4645 | 3.4016 | 6.9300 | 135 | 0 |
596 | IPCA | NaN | 2023-01-02 | 2023 | 5.5072 | 5.4631 | 0.4784 | 4.5197 | 6.9300 | 40 | 1 |
120 rows × 11 columns
Você pode definir múltiplas condições para uma ou mais colunas, separando-as por operadores lógicos como &
, |
ou seus nomes no inglês and
e or
, respectivamente. Somente as linhas onde todas as condições são verdadeiras serão retornadas:
Indicador | IndicadorDetalhe | Data | DataReferencia | Media | Mediana | DesvioPadrao | Minimo | Maximo | numeroRespondentes | baseCalculo | |
---|---|---|---|---|---|---|---|---|---|---|---|
10 | IPCA | NaN | 2023-02-10 | 2023 | 5.7630 | 5.7883 | 0.4401 | 3.6387 | 6.9166 | 142 | 0 |
11 | IPCA | NaN | 2023-02-10 | 2024 | 4.0324 | 4.0000 | 0.5501 | 3.0000 | 5.7557 | 134 | 0 |
Para saber mais consulte a documentação da biblioteca.
Conclusão
Como filtrar somente as linhas que interessam em uma tabela de dados usando Python? Neste tutorial mostramos os métodos de filtros de linhas disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.
Tenha acesso ao código e suporte desse e de mais 500 exercícios no Clube AM!
Quer o código desse e de mais de 500 exercícios de análise de dados com ideias validadas por nossos especialistas em problemas reais de análise de dados do seu dia a dia? Além de acesso a vídeos, materiais extras e todo o suporte necessário para você reproduzir esses exercícios? Então, fale com a gente no Whatsapp e veja como fazer parte do Clube AM, clicando aqui.