0% acharam este documento útil (0 voto)
66 visualizações

Descrição Códigos Python

O documento descreve um processo de automação de tarefas em Python utilizando a biblioteca pyautogui para: 1) acessar um sistema online, 2) fazer login, 3) importar uma base de dados e 4) cadastrar produtos de forma automatizada lendo os dados da base de dados.

Enviado por

Fabrício Irigon
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
66 visualizações

Descrição Códigos Python

O documento descreve um processo de automação de tarefas em Python utilizando a biblioteca pyautogui para: 1) acessar um sistema online, 2) fazer login, 3) importar uma base de dados e 4) cadastrar produtos de forma automatizada lendo os dados da base de dados.

Enviado por

Fabrício Irigon
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 6

Automação de tarefas em python: código 10887

- Escrever passo a passo em português do processo de execução de forma manual:

1) Acessar o sistema da empresa: (link)

Biblioteca: pyautogui
- pip install pyautogui (do terminal)
- import pyautogui
- import time
- pyautogui.<comando>>

#espera para digitação


pyautogui.pause = 0.5(segundo)

- Documentação:
google - pyautogui python

#abrir navegador
pyautogui.press("win")
pyautogui.write("chrome")
pyautogui.press("enter")

#entrar no site
link = "www.qualquernome.com"
pyautogui.write(link)
pyautogui.press("enter")

#dar uma pausa um pouco maior


time.sleep(3)

2) Fazer login:

++++ auxiliar.py ++++++++++++++


import pyautogui
import time
time.sleep(5)
print(pyautogui.position())
+++++++++++++++++++++++++++++++

pyautogui.click(x=714, y=465)
pyautogui.write("[email protected]")

#escrever a senha
pyautogui.press("tab")
pyautogui.write("sua senha aqui")

#clicar no botão de logar


pyautogui.click(x=952, y=680)
time.sleep(3)

3) Importar base de dados;

# pip import pandas numpy openpyxl


import pandas
tabela = pandas.read.csv("produtos.csv")
print(tabela)

4) Cadastrar 1 produto;
# para cada linha da minha tabela
for linha in tabela.index:
#clicar no 1º campo
pyautogui.click(x=709, y=319)
#codigo do produto
codigo = tabela.loc[linha, "codigo"]
pyautogui.write(codigo)
pyautogui.press("tab")
#marca
marca = tabela.loc[linha, "marca"]
pyautogui.write("marca")
pyautogui.press("tab")
#tipo
pyautogui.write(tabela.loc[linha, "tipo"])
pyautogui.press("tab")
#categoria
# str() string -> texto
# str(1) -> 1 -> "1"
pyautogui.write(str(tabela.loc[linha, "categoria"]))
pyautogui.press("tab")
#preco
pyautogui.write(str(tabela.loc[linha, "preco_unitario"]))
pyautogui.press("tab")
#custo
pyautogui.write(str(tabela.loc[linha, "custo"]))
pyautogui.press("tab")
#obs
obs = tabela.loc[linha, "obs"]
if not pandas.isna(obs):
pyautogui.write(obs)
pyautogui.press("tab")
#enviar
pyautogui.press("enter")
pyautogui.scroll(5000)

5) Repetir cadastramento até acabar a base.

=============================================================================
++Jupyter++
Aula 2 - Análise de dados

# Passo a passo do projeto:


# Passo 1: Importar a base de dados de clientes
# Passo 2: Visualizar a base de dados
# Passo 3: Corrigir os problemas da base de dados
# Passo 4: Análise dos cancelamentos
# Passo 5: Análise da causa do cancelamento

#Trabalhar com base de dados -> pandas


#Gráficos e dashboards -> plotly

!pip install pandas numpy openpyxl nb format ipykernel plotly

# Passo 1: Importar a base de dados de clientes


import pandas as pd
tabela = pd.read_csv("cancelamentos_sample.csv")

# Passo 2: Visualizar a base de dados


# colunas inúteis - informações que não te ajudam, te atrapalham
tabela = tabela.drop(columns="CustomerID")
display(tabela)

# Passo 3: Corrigir os problemas da base de dados


# valores vazios - erros de preenchmento
display(tabela.info())
tabela = tabela.dropna() #excluir linhas NaN

# Passo 4: Análise dos cancelamentos


display(tabela["cancelou"].value_counts())
display(tabela["cancelou"].value_counts(normalize=True)) #percentual
display(tabela["cancelou"].value_counts(normalize=True).map("{:.1%}".format)
#formato percentual

# Passo 5: Análise da causa do cancelamento


import plotly.express as px #ver tipos e formas de gráfico - plotly.com/python

# criar o gráfico
# para cada coluna da minha tabela
for coluna in tabela.columns:
grafico = px.histogram(tabela, x=coluna, color="cancelou")
# exibe o gráfico
grafico.show()

Conclusões a partir dos gráficos:


# se um cliente ligar mais de 4x para o call center, ele cancela
#criar um processo de retenção para mais de 3 ligações do mesmo cliente, para
não deixar mais de 20 dias de atraso no pagamento, oferecer descontos nos planos
trimestrais e anuais.

tabela = tabela[tabela["duracao_contrato"]!= "Monthly"] # sem duração do contrato


mensal
tabela = tabela[tabela["ligacoes_callcenter"]<=4] # sem ligação do callcenter acima
de 3 vezes
tabela = tabela[tabela["dias_atraso"]<=20] #sem atraso de pagamento

===================================================================================
====

Aula 3 - Inteligência Artificial - Case de score de crédito dos clientes

# Passo a passo do projeto:


# Passo 0 -> Entender o desafio da empresa
# Passo 1 -> Importar a base de dados
# Passo 2 -> Preparar a base de dados para IA
# Passo 3 -> Criar um modelo de IA -> Score crédito: Bom, Ok , ruim
# Passo 4 -> Escolher o melhor modelo
# Passo 5 -> Usar a nossa IA para fazer novas previsões

Bibliotecas:
pandas -> base de dados
scikit-learn -> IA

# Passo 1 -> Importar a base de dados


import pandas as pd

tabela = pd.read.csv("clientes.csv")
display(tabela)
display(tabela.info())
# Good (Bom), Standard(ok), Poor (Ruim)

# Passo 2 -> Preparar a base de dados para IA


# int -> número inteiro
# float -> número com casa decimal
# object -> texto

# Label Encoder - profissao, mix_credito, comportamento_pagamento


# profissão
# Engenheiro -> 1
# Cientista -> 2
# Advogado -> 3
# Artista -> 4
# Mecanico -> 5

# importar o label encoder


from sklearn.preprocessing import LabelEncoder

# criar o label encoder


codificador = LabelEncoder()

# aplicar o label encoder na coluna


tabela["profissao"] = codificador.fit_transform(tabela["profissao"])

# mix_credito
tabela["mix_credito"] = codificador.fit_transform(tabela["mix_credito"])

# comportamento_pagamento
tabela["comportamento_pagamento"] =
codificador.fit_transform(tabela["comportamento_pagamento"])

# 2 divisões
# quem eu quero prever, quem eu quero usar para fazer a previsão
y = tabela["score_credito"]
x = tabela.drop(columns=["score_credito","id_cliente"])

# treino e teste
from sklearn.model_selection import train_test_split

x_treino, x_teste, y_treino, y_teste = train_test_split(x,y, test_size=0.3)

# Passo 3 -> Criar um modelo de IA


# Árvore de Decisão
# KNN -> Vizinhos próximos (Nearest Neighbors)

# importar a IA
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier

# criar a IA
modelo_arvoredecisao = RandomForestClassifier()
modelo_knn = KNeighborsClassifier()

# treina a IA
modelo_arvoredecisao.fit(x_treino, y_treino)
modelo_knn.fit(x_treino, y_treino)
# testar os modelos
previsao_arvoredecisao = modelo_arvoredecisao.predict(x_teste)
previsao_knn = modelo_knn.predict(x_teste)

from sklearn.metrics import accuracy_score

print(accuracy_score(y_teste, previsao_arvoredecisao))
print(accuracy_score(y_teste, previsao_knn))

# o melhor modelo é o de árvore de decisão


tabela_nova = pd.read.csv("novos_clientes.csv")
display(tabela_nova)

tabela_nova["profissao"] = codificador.fit_transform(tabela_nova["profissao"])
tabela_nova["mix_credito"] = codificador.fit_transform(tabela_nova["mix_credito"])
tabela_nova["comportamento_pagamento"] =
codificador.fit_transform(tabela_nova["comportamento_pagamento"])

previsoes = modelo_arvoredecisao.predict(tabela_nova)
display(previsoes)

===================================================================================
=====================

Aula 4 - Python Dev: Criação de sites e sistemas com python

# Título: Hashzap
# Botão de iniciar chat
# clicou no botão
# popup / modal
# Título: Bem vindo ao Hashzap
# campo: escreva seu nome no chat
# botão: entrar no chat
# chat
# embaixo do chat
# campo de Digite sua mensagem
# botão de enviar

# flet -> framework do Python


# django
# flask
# pip install flet

import flet as ft # importar

def main(pagina): # criar a função principal/main


texto = ft.Text("Hashzap")

chat = ft.Column()

def enviar_mensagem_tunel(mensagem):
# adicione a mensagem no chat
texto_mensagem = ft.Text(mensagem)
chat.controls.append(texto_mensagem)
pagina.update()

pagina.pubsub.subscribe(enviar_mensagem_tunel)

def enviar_mensagem(evento):
print("Enviar mensagem")
pagina.pubsub.send_all(f"{nome_usuario.value}: {campo_mensagem.value}")
# limpe o campo mensagem
campo_mensagem.value = ""
pagina.update()

campo_mensagem = ft.TextField(Label="Digite sua mensagem",


on_submit=enviar_mensagem)
botao_enviar = ft.ElevatedButton("Enviar", on_click=enviar_mensagem)
linha_enviar = ft.Row([campo_mensagem, botao_enviar])
def entrar_chat(evento):
print("Entrar no chat")
# fechar o popup
popup.open = false
# tirar o botão iniciar chat
pagina.remove(botao_iniciar)
# tirar o título hashzap
pagina.remove(texto)
# criar o chat
pagina.add(chat)
pagina.pubsub.send_all(f"{nome_usuario.value} entrou no chat")
# colocar o campo de digitar mensagem
# criar o botão de enviar
pagina.add(linha_enviar)
pagina.update()

titulo_popup = ft.Text("Bem vindo ao Hashzap")


nome_usuario = ft.TextField(Label="Escreva seu nome no chat")
botao_entrar = ft.ElevatedButton("Iniciar Chat", on_click=entrar_chat)
popup = ft.AlertDialog(
open=false,
modal=true,
title=titulo_popup,
content=nome_usuario,
actions=[botao_entrar]
)

def abrir_popup(evento):
pagina.dialog = popup
popup.open = true
pagina.update()

botao_iniciar = ft.ElevatedButton("Iniciar Chat", on_click=abrir_popup)

pagina.add(texto)
pagina.add(botao_iniciar)

ft.app(target=main) # criar o app chamando a função principal

Você também pode gostar