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
- 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
Postar um comentário