Manipulação de Planilhas no Excel usando Python.
Na engenharia, muitas das vezes nos deparamos com uma grande quantidade de dados que precisa ser filtrada, a fim de obter um resultado em específico. Durante esse post iremos explorar uma das maneiras que podem ser usados a fim de filtrar ou modificar dados de uma amostra utilizando a bibioteca panda do python.
Manipular planilhas do Excel usando pandas é uma tarefa bastante comum e eficiente, especialmente para análise e processamento de dados. A seguir, vou apresentar alguns exemplos básicos e intermediários de como realizar diferentes operações com pandas em arquivos Excel.
Instalação
Primeiro, certifique-se de ter pandas e openpyxl instalados. Para fazer isso, basta escrever o seguinte comando no terminal do IDE que você está utilizando:
bash
pip install pandas openpyxl
Leitura de Planilhas
Leitura de uma única planilha
Antes de ler a planilha que você deseja analisar, verfique se a planilha em questão está localizada na MESMA pasta que o código em python.
python
import pandas as pd
# Leitura da planilha especificada
df = pd.read_excel(‘caminho_para_seu_arquivo.xlsx’, sheet_name=’Nome_da_Planilha’)
# Leitura da primeira planilha do arquivo
df = pd.read_excel(‘caminho_para_seu_arquivo.xlsx’)
Leitura de todas as planilhas
python
# Leitura de todas as planilhas
all_sheets = pd.read_excel(‘caminho_para_seu_arquivo.xlsx’, sheet_name=None)
# Acessando uma planilha específica
df_specific = all_sheets[‘Nome_da_Planilha’]
Criação de um DataFrame
Um DataFrame é uma estrutura de dados bidimensional, semelhante a uma tabela, que é amplamente utilizada na biblioteca pandas do Python para armazenar e manipular dados tabulares. Um DataFrame pode ser considerado como uma coleção de séries pandas (equivalentes a colunas de dados) alinhadas ao longo de um índice (equivalente a linhas da tabela). Ele é altamente flexível e facilita a análise, limpeza, manipulação e visualização de dados.
Quando uma planilha do Excel é utilizada como um DataFrame em Python para análise de dados, ela se torna uma estrutura de dados que permite a manipulação, análise e visualização de grandes volumes de dados de uma maneira mais eficiente e automatizada do que o próprio Excel. Abaixo segue um exemplo de DataFrame que pode ser interpretado como uma planilha do Excel.
python
import pandas as pd
data = {
‘Nome’: [‘Ana’, ‘João’, ‘Maria’],
‘Idade’: [28, 34, 29],
‘Cidade’: [‘São Paulo’, ‘Rio de Janeiro’, ‘Curitiba’]
}
df = pd.DataFrame(data)
print(df)
Estrutura do DataFrame
plaintext
Nome Idade Cidade
0 Ana 28 São Paulo
1 João 34 Rio de Janeiro
2 Maria 29 Curitiba
- Colunas: ‘Nome’, ‘Idade’, ‘Cidade’. Cada chave no dicionário de dados representa uma coluna.
- Linhas: 0, 1, 2. Cada linha tem um índice que, por padrão, é numérico e começa em 0.
Acessando Colunas
Você pode acessar uma coluna específica usando a chave correspondente.
python
# Acessando a coluna ‘Nome’
print(df[‘Nome’])
# Resultado:
# 0 Ana
# 1 João
# 2 Maria
# Name: Nome, dtype: object
Acessando Linhas
Você pode acessar linhas usando métodos como loc (para acesso baseado em rótulos) e iloc (para acesso baseado em índices).
Usando loc
python
# Acessando a linha com índice 1
print(df.loc[1])
# Resultado:
# Nome João
# Idade 34
# Cidade Rio de Janeiro
# Name: 1, dtype: object
Usando iloc
python
# Acessando a linha com índice 1
print(df.iloc[1])
# Resultado:
# Nome João
# Idade 34
# Cidade Rio de Janeiro
# Name: 1, dtype: object
Manipulando Colunas
Você pode adicionar, remover ou modificar colunas usando as chaves.
Adicionar uma nova coluna
python
df[‘Nova_Coluna’] = df[‘Idade’] + 10
print(df)
plaintext
Nome Idade Cidade Nova_Coluna
0 Ana 28 São Paulo 38
1 João 34 Rio de Janeiro 44
2 Maria 29 Curitiba 39
Remover uma coluna
python
df = df.drop(columns=[‘Nova_Coluna’])
print(df)
plaintext
Nome Idade Cidade
0 Ana 28 São Paulo
1 João 34 Rio de Janeiro
2 Maria 29 Curitiba
Resumo
- Chaves no dicionário: Representam colunas no DataFrame.
- Linhas: São indexadas numericamente por padrão, mas podem ser personalizadas.
Exemplos Adicionais
Filtrando dados
python
# Filtrar linhas onde a idade é maior que 30
df_filtrado = df[df[‘Idade’] > 30]
print(df_filtrado)
plaintext
Copiar código
Nome Idade Cidade
1 João 34 Rio de Janeiro
Agrupando dados
python
# Agrupar por ‘Cidade’ e calcular a média das idades
df_agrupado = df.groupby(‘Cidade’)[‘Idade’].mean()
print(df_agrupado)
plaintext
Copiar código
Cidade
Curitiba 29
Rio de Janeiro 34
São Paulo 28
Name: Idade, dtype: int64
Escrita em Planilhas
Escrever em uma nova planilha
python
# Criando um DataFrame de exemplo
data = {‘Nome’: [‘Ana’, ‘João’, ‘Maria’],
‘Idade’: [28, 34, 29]}
df = pd.DataFrame(data)
# Escrever o DataFrame em uma nova planilha
df.to_excel(‘novo_arquivo.xlsx’, sheet_name=’Nova_Planilha’, index=False)
Escrever múltiplos DataFrames em diferentes planilhas
python
# Criando DataFrames de exemplo
df1 = pd.DataFrame({‘Nome’: [‘Ana’, ‘João’, ‘Maria’], ‘Idade’: [28, 34, 29]})
df2 = pd.DataFrame({‘Cidade’: [‘São Paulo’, ‘Rio de Janeiro’, ‘Curitiba’], ‘População’: [12e6, 6e6, 2e6]})
# Escrever os DataFrames em diferentes planilhas
with pd.ExcelWriter(‘multiplas_planilhas.xlsx’) as writer:
df1.to_excel(writer, sheet_name=’Pessoas’, index=False)
df2.to_excel(writer, sheet_name=’Cidades’, index=False)
Salvando Modificações em um Arquivo Excel
Atualizando uma planilha existente
Se você quiser adicionar dados a uma planilha existente sem sobrescrever o arquivo inteiro, você pode usar a função ExcelWriter com o modo de adição:
python
with pd.ExcelWriter(‘arquivo_existente.xlsx’, mode=’a’, engine=’openpyxl’) as writer:
df.to_excel(writer, sheet_name=’Planilha_Atualizada’, index=False)
Exemplo Completo
Aqui está um exemplo completo que cobre leitura, manipulação e escrita:
python
import pandas as pd
# Leitura do arquivo Excel
df = pd.read_excel(‘caminho_para_seu_arquivo.xlsx’, sheet_name=’Nome_da_Planilha’)
# Filtragem de dados
df_filtrado = df[df[‘Idade’] > 30]
# Adicionando uma nova coluna
df_filtrado[‘Nova_Coluna’] = df_filtrado[‘Idade’] * 2
# Escrevendo em uma nova planilha
with pd.ExcelWriter(‘arquivo_atualizado.xlsx’, engine=’openpyxl’) as writer:
df.to_excel(writer, sheet_name=’Original’, index=False)
df_filtrado.to_excel(writer, sheet_name=’Filtrado’, index=False)
Após esse breve tutorial, espero que possa desfrutar do conhecimento adquirido aqui para realizar diversos projetos de filtragem e análise de dados.