Pular para o conteúdo principal

Aprenda Pandas utilizando exemplos de SQL e vice e versa (select, insert, update e delete)



O que é o Pandas?

O Pandas é uma biblioteca open source do Python, criada para a função de análise de dados. Suas funções incluem limpeza, tratamento e análise exploratória de dados (EDA).

É uma biblioteca muito utilizada para o trabalho de Machine Learning e Data Science, porém sua utilidade vai muito além disso, sendo uma ferramenta poderosa para programadores ou profissionais que lidam com grandes conjuntos de dados. Eu utilizo muito o Pandas para conferência de relatórios e bases de dados, e considero uma ferramenta muito útil, por exemplo, para profissionais de finanças, contabilidade, etc.

Funcionamento do Pandas

O funcionamento do Pandas está centrado em DataFrames, que são objetos para estruturar dados, algo parecido com uma planilha. Os dados são importados para um DataFrame, e as fontes de dados pode ser de diversos tipos, por exemplo:

  • Excel
  • Json
  • SQL
  • HTML
  • Google Sheets

A liberdade que o Pandas proporciona é uma de suas grandes vantagens, pois é possível importar dados de várias fontes, combiná-las e trabalhar esses dados de forma conjunta.

Instalando o Pandas

A instalação do Pandas é bastante simples, com o Python instalado abra o terminal e utilize o comando abaixo:


pip install pandas

Importando uma base de dados

Eu acredito fortemente que uma das formas mais fáceis de aprender uma tecnologia é utilizá-la. Então, vamos criar um arquivo Python e importar uma base de dados para trabalharmos. O processo de importação varia conforme o tipo de conjunto de dados. Neste exemplo, utilizaremos um arquivo CSV. Para isso, dentro do nosso código Python, usaremos o seguinte comando:


import pandas as pd

pessoas = pd.read_csv("Pessoas.csv", sep=";")

O comando acima faz os seguintes processos, a primeira linha importa a biblioteca Pandas "import pandas as pd". Em seguida, criamos uma variável para armazenar o DataFrame e utilizamos o método "pd.read_csv("Pessoas.csv", sep=';')" passando o caminho da base de dados "Pessoas.csv" e definimos o ponto e vírgula (;) como separador de arquivo CSV.

Como utilizar o Pandas

Há muito material sobre como utilizar o Pandas, a documentação oficial, livros e artigos. No meu caso, tenho de uma bagagem de SQL então é mais fácil entender o Pandas a partir de uma base já estabelecida. Acredito que isso seja muito útil para quem possui o mesmo background, o interessante é que o inverso também é possível, aprender SQL utilizando os exemplos do Pandas.

Preparando o ambiente

Bom, já temos o Pandas instalado, então precisamos de uma base de dados para trabalhar. Eu criei uma simulação de uma base de dados de pessoas e subi em um repositório do Github, lá você pode baixar esse arquivo assim como os exemplos de código. A base de dados é uma lista de pessoas, que contém os seguintes campos:

  • Nome
  • Email
  • País
  • Idade

Comparando o SQL com o Pandas

SELECT

Em SQL, para consultar a tabela Pessoas e trazer os campos "Nome" e "País", podemos usar a seguinte consulta:

    
    
SELECT
	Nome,
	Pais
FROM 
	Pessoas
    

Para realizar essa mesma consulta no Pandas utilizamos o seguinte código:

    
    
pessoas[["Nome", "Pais"]]
    

Podemos instanciar essa consulta em uma nova variável, imprimir no console ou gerar um novo arquivo CSV com esses dados.

SELECT COM WHERE

Suponha que precisemos filtrar a tabela para exibir apenas os registros de pessoas do Brasil. Em SQL, podemos fazer isso da seguinte forma:

    
    
SELECT 
	*
FROM 
	Pessoas
WHERE
	Pais = 'Brazil'
    

Para replicar isso no Pandas utilizamos o seguinte comando:

    
    
pessoas_brasil = pessoas[pessoas["Pais"] == 'Brazil']
    

SELECT COM GROUP BY

E se quisermos contar o número de pessoas por país, no SQL podemos utilizar o Group by.

    
    
SELECT 
	Pais,
	COUNT(Pais) AS 'Quantidade Pessoas'
FROM 
	Pessoas
GROUP BY
	Pais
ORDER BY
	Pais
    

Para realizar um GroupBy no Pandas utilizamos o método groupby(), informando a coluna pela qual vamos agrupar:

    
    
pessoas_por_pais = pessoas.groupby("Pais").size()
    

INSERT

Para inserir um dado em uma tabela SQL utilizamos o seguinte código.

    
    
INSERT INTO
    Pessoas(Nome, Email, Pais, Idade)
VALUES
    ('Fulano', 'fulano@fulano.org', 'Brazil', 37)
    

No pandas, é possível fazer o mesmo processo, inserir uma linha em um DataFrame. A forma mais comum é usar o método loc.

    
    
pessoas.loc[len(pessoas)] = ['Fulano', 'fulano@fulano.org', 'Brazil', 37]
    

O comando acima faz o seguinte, utilizamos o método "loc" (indexador), e passamos um index (o número da linha que desejamos), utilizamos o método len() para inserir o tamanho de linhas do DataFrame, assim temos certeza que a inserção será após o último registro.

UPDATE

Digamos que agora queremos alterar o nome do país de "Brazil" para "Brasil", aportuguesando o nome do país, no SQL faríamos algo assim:

    
    
UPDATE
    Pessoas
SET
    Pais = 'Brasil'
WHERE
    Pais = 'Brazil'
    

No Pandas podemos fazer algo parecido utilizando o código abaixo:

    
    
pessoas.loc[pessoas['Pais'] == 'Brazil', 'Pais'] = 'Brasil'
    

Explicando o comando, utilizamos o indexador "loc", trabalhando na coluna "Pais" onde o valor é igual à "Brazil" (pessoas['Pais'] == 'Brazil') e selecionamos apenas a coluna "Pais", alterando o valor para "Brasil"

DELETE

Para excluir um registro no SQL realizamos algo assim:

    
    
DELETE FROM
	Pessoas
WHERE
	Email = 'fulano@fulano.org'
    

No Pandas podemos fazer esse código:

    
    
pessoas = pessoas.loc[pessoas["Email"] != 'fulano@fulano.org']
    

No Pandas, a exclusão de registros é feita filtrando os dados desejados e sobrescrevendo o DataFrame original. Existe outras forma, por exemplo:

    
    
pessoas = pessoas.drop(pessoas[pessoas.Email == 'fulano@fulano.org'].index)
    

Conclusão

O Pandas é uma ferramenta muito útil e versátil. Qualquer dúvida estou a disposição nos comentários, e todos os códigos e materiais utilizados nesse artigo estão disponíveis no repositório do Github.




Comentários

Postagens mais visitadas deste blog

Gerenciando Dependências no Python com requirements.txt

O que é o Pip? O Pip  (Package Installer for Python) é o gerenciador de pacotes do Python. Ele permite instalar, atualizar e remover bibliotecas e dependências de forma prática, garantindo que seu ambiente esteja sempre configurado corretamente. Como gerar um arquivo requirements.txt? Quando trabalhamos em projetos Python, muitas vezes precisamos garantir que todas as dependências necessárias estejam instaladas. Para facilitar essa gestão, podemos gerar um arquivo requirements.txt que contém a lista de pacotes e versões utilizadas no ambiente. Para gerar esse arquivo, execute o seguinte comando no terminal: pip freeze > requirements.txt Esse comando captura todas as bibliotecas instaladas no ambiente e as salva no arquivo requirements.txt . Geralmente trabalhamos com um ambiente virtual, o que é uma boa prática. Como instalar dependências a partir do requirements.txt? Se você precisa configurar um novo ambiente ou compar...

JSON e Python: Tudo o Que Você Precisa Saber para Manipular Dados

O Python possui funções embutidas (built in functions) para trabalhar com formato JSON, aqui um exemplo de como realizar uma requisição para uma API e trabalhar com o retorno em JSON. Esse código faz uma chamada à PokeApi e realiza a consulta do pokemon Pikachu. Caso a requisição retorne sucesso, o JSON é mostrado na tela. Para rodar esse código é necessário instalar o módulo " request ", com o comando " pip install request ". import requests import json url = " https://pokeapi.co/api/v2/pokemon/pikachu/" response = requests.get(url) if response.status_code == 200: data = response.json() print(json.dumps(data, indent=2)) else: print(f"Error: {response.status_code}") Trabalhando com dados aninhados No exemplo acima realizamos uma requisição para a PokeApi. O conteúdo da resposta está em um formato JSON aninhado, ou seja possui itens dent...