Blog

Postado em em 27 de novembro de 2021

Ferramenta de Cadastro no Python com Pandas – Parte 2

Nessa aula eu vou dar uma breve continuidade a ferramenta de cadastro no Python só que agora com pandas incluindo uma base de dados!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Ferramenta de Cadastro no Python com Pandas

Essa aula é uma breve continuação da aula de Ferramenta de Cadastro no Python para atender alguns pedidos dos nossos inscritos!

A ideia dessa aula é fazer uma integração Python Excel para fazer essa ferramenta de cadastro com banco de dados.

Isso quer dizer que vamos poder tanto registrar as informações novas dentro de uma base de dados no Excel quanto pegar algumas informações dessa base de dados par utilizar na ferramenta.

Ferramenta de Cadastro com Banco de Dados

Se você ainda não viu a aula anterior para saber como criar ferramenta de cadastro no Python recomendo que veja, pois como é uma continuação você precisa entender o que foi feito.

import datetime as dt
import tkinter as tk
from tkinter import ttk
import pandas as pd

materiais = pd.read_excel('materiais.xlsx', engine='openpyxl')

lista_codigos = []
lista_tipos = ["Galão", "Caixa", "Saco", "Unidade"]

janela = tk.Tk()

# Criação da função


def inserir_codigo():
    descricao = entry_descricao.get()
    tipo = combobox_selecionar_tipo.get()
    quant = entry_quant.get()
    data_criacao = dt.datetime.now()
    data_criacao = data_criacao.strftime("%d/%m/%Y %H:%M")
    codigo = materiais.shape[0] + len(lista_codigos)+1
    codigo_str = "COD-{}".format(codigo)
    lista_codigos.append((codigo_str, descricao, tipo, quant, data_criacao))


# Título da Janela

janela.title('Ferramenta de cadastro de materiais')

label_descricao = tk.Label(text="Descrição do Material")
label_descricao.grid(row=1, column=0, padx=10, pady=10, sticky='nswe', columnspan=4)

entry_descricao = tk.Entry()
entry_descricao.grid(row=2, column=0, padx=10, pady=10, sticky='nswe', columnspan=4)

label_tipo_unidade = tk.Label(text="Tipo da unidade do Material")
label_tipo_unidade.grid(row=3, column=0, padx=10, pady=10, sticky='nswe', columnspan=2)

combobox_selecionar_tipo = ttk.Combobox(values=lista_tipos)
combobox_selecionar_tipo.grid(row=3, column=2, padx=10, pady=10, sticky='nswe', columnspan=2)

label_quant = tk.Label(text="Quantidade na unidade de matetial")
label_quant.grid(row=4, column=0, padx=10, pady=10, sticky='nswe', columnspan=2)

entry_quant = tk.Entry()
entry_quant.grid(row=4, column=2, padx=10, pady=10, sticky='nswe', columnspan=2)

botao_criar_codigo = tk.Button(text="Criar código", command=inserir_codigo)
botao_criar_codigo.grid(row=5, column=0, padx=10, pady=10, sticky='nswe', columnspan=4)

janela.mainloop()

novo_material = pd.DataFrame(lista_codigos, columns=['Código', 'Descrição','Tipo', 'Quantidade', 'Data Criação'])
materiais = materiais.append(novo_material, ignore_index=True)
materiais.to_excel('materiais.xlsx', index=False)

Esse é o novo código que nós vamos utilizar, então vou comentar sobre algumas das mudanças que nós fizemos.

A ideia nesse novo código é ler um arquivo em Excel, que é onde temos os nossos materiais e verificar os códigos existentes.

Verificar o índice do novo código, adicionar as informações dentro do dataframe e para finalizar atualizar o Excel com essas informações.

Para poder fazer essa parte de análise de dados nós vamos ter que utilizar o Pandas Python, então se você ainda não tem essa biblioteca basta instalar utilizando o terminal do PyCharm.

Basta escrever pip install pandas que a biblioteca será instalada, depois vai precisar importar ela dentro do código!

Então logo na parte inicial do código nós temos a leitura do arquivo materiais.xlsx que você vai criar dentro da mesma pasta que está o seu código.

Já vamos atribuir essas informações a uma variável para que possamos utilizar posteriormente para as demais alterações.

Outra modificação que fizemos foi dentro da função inserir_codigo, pois vamos ter que acrescentar os novos códigos, mas precisamos saber quantos códigos já temos no nosso arquivo.

Para isso vamos utilizar o codigo = materiais.shape[0] + len(lista_codigos)+1, com isso nós vamos pegar o número de colunas dos materiais (que temos na base de dados) e vamos somar com o tamanho da lista códigos + 1 para que possamos preencher no local correto sem sobrepor nenhuma informação.

A outra etapa que é de criar um dataframe com os novos materiais, então vamos inserir as informações da lista_codigo com as colunas específicas, para que as informações sejam inseridas de forma correta.

Por fim nós vamos adicionar os novos materiais com que os que já existem e vamos adicionar essas informações no arquivo Excel, para poder atualizá-lo.

Arquivo em Excel atualizado
Arquivo em Excel atualizado

Dentro do seu arquivo de Excel você vai ter exatamente os mesmos cabeçalhos que já havíamos criado para que tudo seja preenchido corretamente.

Então você pode tanto criar um arquivo somente com os cabeçalhos quanto já pode preencher com algumas informações que a ferramenta de cadastro vai apenas adicionar os novos dados.

Vale ressaltar que a parte de interface gráfica no Python utilizando o Tkinter nós explicamos melhor na aula anterior.

Conclusão da Ferramenta de Cadastro no Python com Pandas

Na aula de hoje nós fizemos uma parte 2 da Ferramenta de Cadastro no Python para utilizar o mesmo projeto só que com uma base de dados.

Assim você pode tanto pegar quanto adicionar informações a essa base de dados utilizando essa ferramenta de cadastro.

Isso deixa o projeto um pouco mais completo e te permite ter uma base de dados atualizada com essas informações sem que você tenha sempre que começar do zero com seus cadastros.

Então aprendemos como ler arquivo em Excel com Python e claro, como adicionar dados no Excel com Python para atualizar a base de dados.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso gratuito?


Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador