0% acharam este documento útil (0 voto)
39 visualizações14 páginas

Intensivo Python

Este documento fornece instruções sobre como automatizar tarefas usando Python. Ele explica como usar bibliotecas como pyautogui, pandas e Selenium, além de fornecer exemplos de códigos para realizar diferentes automações.

Enviado por

Pedro Rufino
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
39 visualizações14 páginas

Intensivo Python

Este documento fornece instruções sobre como automatizar tarefas usando Python. Ele explica como usar bibliotecas como pyautogui, pandas e Selenium, além de fornecer exemplos de códigos para realizar diferentes automações.

Enviado por

Pedro Rufino
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 14

Primeira coisa a fazer SEMPRE

- Escrever o que eu quero fazer no projeto (passo a passo)

- Transformar cada passo em linguagem python

Bibliotecas:

pyautogui (pacote de codigos para automatizar o uso do mouse, teclado)

pandas (pacote de codigos para trabalhar combase de dados)

PYAUTOGUI

!pip install pyautogui (para instalar)

import pyautogui (importar)

Funções pyautogui

pyautogui.click (clica)

pyautogui.press (aperta 1 tecla)

pyautogui.hotkey (atalho)

pyautogui.write (escreve texto)

pyautogui.PAUSE = 1 (dará 1s de pausa entre as ações

Quando envolver link ou itens com caracteres especiais

import pyperclip

copiar com ele - pyperclip.copy ('link') e pyautogui.hotkey (“ctrl”, “v”)

Para inserir tempo de espera após alguma ação:

import time

time.sleep (5)

Código para descobrir a posição exata do mouse

time.sleep (5)

pyautogui.position ( )

ex.:
import time

time.sleep(5)

pyautogui.position (x=1408, y=342, clicks=2) (button='right' quando quiser clique com direito)

PANDAS

import pandas as pd (as pd = poderá chamar ele só por pd)

variável = pd.ação_tipo (local do arquivo)

EX.:

tabela = tabela = pd.read_excel(r'C:\Users\rcdsc\Downloads\Vendas - Dez.xlsx')

OBS1: se tiver mais de uma planilha colocar

tabela = tabela = pd.read_excel(r'C:\Users\rcdsc\Downloads\Vendas - Dez.xlsx,


sheet_name=’planilha10’’)

OBS2: o ‘r’ antes significa que o python vai ler exatamente como está escrito

display (tabela) – mostra a tabela formatada

#Passo 5: calcular indicadores da empresa

Nova variável = tabela existente [coluna existente entre colchetes].sum

.sum SOMA

.mean MEDIA

.count CONTAR

Exemplo:

faturamento = tabela ['Valor Final'].sum()

quantidade = tabela ['Quantidade'].sum()

#Escrever e enviar email

Sempre que tiver caracteres especiais (tipo acentos), ao invés de usar o pyautogui.write

Utilizar o pyperclip.copy (“texto”) e depois pyautogui.hotkey (‘ctrl’, ‘v’)


Texto com linhas e parágrafos

Abrir e fechar três aspas

Exemplo:

texto =f'''Prezados

Segue o relatório de vendas.

Faturamento: R${faturamento:,.2f}

Quantidade de produtos vendidos: {quantidade:,}

Qualquer dúvida estou à disposição

'''

OBS1: ”f” é para formatar. Ele permite colocar variáveis entre { }

OBS2: ”:” após a variável indica ao python que você irá formatar o número

OBS3:”,” após “:” é o separador de milhar

Obs4:”2f” indica que são duas casas decimais

Automatizando anexo em e-mails

arquivo = r'C:\Users\rcdsc\Downloads\Vendas - Dez.xlsx'

pyautogui.click (x=1383, y=912)

time.sleep (2)

pyperclip.copy (arquivo)

pyautogui.hotkey ('ctrl', 'v')

pyautogui.press ('enter')

time.sleep (4)

Imagem referência para espera do pyautogui

Instalar Open cv-python: (ferramenta de reconhecimento de imagem no python)

!pip install opencv-python

Usar imagem que você sabe que irá aparecer após toda a tela ser carregada,
independentemente do tempo que demorar.

Exemplo: no caso, logo do Google Drive dentro do Drive


Usar a ferramenta Ferramenta de captura e salvar como png

(e colocar a imagem onde está o código) e colocar confiança de 90%

while not pyautogui.locateOnScreen(‘drive.png’, confidence = 0.9):

time.sleep (1)

Significa: Enquanto não achar a imagem referida, esperar 1 segundo

AULA 2

Excluindo informação inútil de tabela

Nome da tabela = nomedatabela.drop (“nome da coluna ou nº da linha”, eixo 0 ou 1)

tabela = tabela.drop("Unnamed: 0", axis=1)axis=0 > linha / axis=1 > coluna

Informações de uma tabela

Função: print(tabela.info())

Mostra informações da tabela (tipo, qnt. De valores nulos, etc)

Trocar o tipo de uma coluna (texto para nº)

Nome da tebela [“coluna desejada”] = pandas.função(tabela[“coluna desejada”]


errors="coerce")

tabela["TotalGasto"] = pd.to_numeric(tabela["TotalGasto"], errors="coerce")

errors="coerce" – significa que caso encontre algum erro, force a transforma em nº, caso
tenha algum texto na coluna que deveria ser apenas nº

[colchetes] – para selecionar uma coluna da tabela

# VALORES VAZIOS

# colunas completamente vazias

tabela = tabela.dropna (how="all", axis=1)

# linhas com pelo menos 1 valor vazio

tabela = tabela.dropna (how="any", axis=0)

dropna – permite deletar linha ou coluna vazia automaticamente

how – critério [all= todas vazias / any= alguma linha vazia


Contar valores de uma coluna específica - Indicará quantos são SIM e quantos são NÃO

(tabela['Churn'].value_counts())

value_counts – contar valores

(tabela['Churn'].value_counts(normalize=True).map("{:.1%}".format))

normalize=True – indica a porcentagem

.map("{:.1%}".format) – formata para mostrar em porcentagem no python

se fosse {:.1f} indicaria o formato com uma casa decimal

GRÁFICOS

Obs: para gráficos sãos sempre duas etapas: criar e exibir

Exibir é nome do gráfico.show() ex.: figura1.show()

Para edição de gráficos - https://plotly.com/python/histograms/

Ferramentas (bibliotecas) de criar gráficos

# matplotlib

# seaborn

# plotly

!pip install plotly – pra instalar o plotly

Import plotly.express as px

Fazer o gráfico

fig = px.histogram(tabela, x="Casado", title = 'Histogramas da condição de matrimônio',


opacity = 0.5, color="Churn", text_auto=True)

Histograma, indica a tabela, qual coluna é o eixo x

Color = “coluna determinada” cria uma relação entre as duas com cores diferentes

Opacity – opacidade

Title – Título

Text_auto = True - exibe os valores de cada parte no gráfico mesmo

color_discrete_sequence= [ 'indianred' ] SE QUISESSE ATRIBUIR OUTRA COR PRA TODO O


GRÁFICO
Criar vários gráficos de uma vez

for coluna in tabela.columns:

fig = px.histogram(tabela, x=coluna, color="Churn", text_auto=True)

fig.show()

Significa:

Para cada coluna das colunas da tabela, irá criar um gráfico e exibi-lo

AULA 3

# Importar selenium – para exportar apenas o que vai ser utilizado e não toda a biblioteca

from selenium import webdriver

from selenium.webdriver.common.keys import Keys #permite escrever no navegador

from selenium.webdriver.common.by import By #permite selecionar itens no navegador

# para rodar o chrome em 2º plano

# from selenium.webdriver.chrome.options import Options

# chrome_options = Options()

# chrome_options.headless = True

# navegador = webdriver.Chrome(options=chrome_options)

# abrir o chrome

navegador = webdriver.Chrome()

# PASSO 2: COTAÇÃO DO DÓLAR

# pesquisar no google a cotação do dólar

# o que irá fazer: navegador, encontra a caixa de texto e escreve nela


# botão direito na caixa de texto > inspecionar

# ao abrir uma caixa, clica na seta no canto superior esquerdo

# permitira selecionar qualquer elemento da tela

# selecionar a caixa de texto e irá destacar um texto na caixa

# botão direito > copiar > xpath (XPATH é código único do item)

# entrar no google

navegador.get('https://www.google.com.br/')

# navegador_o que quero editar_o que quero escrever nele

navegador.find_element("xpath",
'/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input').send_keys('cotação
dolar')

# pressionar enter

navegador.find_element("xpath",
'/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input').send_keys(Keys.ENTER)

# pegar a cotação do google # xpath do valor que aparece no google

cotacao_dolar = navegador.find_element('xpath', '//*[@id="knowledge-currency__updatable-


data-column"]/div[1]/div[2]/span[1]').get_attribute('data-value')

print(cotacao_dolar)

# PASSO 2: COTAÇÃO DO EURO

# entrar no google

navegador.get('https://www.google.com.br/')

# navegador_o que quero editar_o que quero escrever nele

navegador.find_element("xpath",
'/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input').send_keys('cotação
euro')
# pressionar enter

navegador.find_element("xpath",
'/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input').send_keys(Keys.ENTER)

# pegar a cotação do google # xpath do valor que aparece no google

cotacao_euro = navegador.find_element('xpath', '//*[@id="knowledge-currency__updatable-


data-column"]/div[1]/div[2]/span[1]').get_attribute('data-value')

print(cotacao_euro)

# PASSO 3: COTAÇÃO DO OURO

# entrar no google

navegador.get('https://www.melhorcambio.com/ouro-hoje')

# pegar cotação do ouro

cotacao_ouro = navegador.find_element("xpath",
'//*[@id="comercial"]').get_attribute('value')

print (cotacao_ouro)

# navegador.quin () #para fechar o navegador após rodar

# PASSO 4: ATUALIZAR BASE DE PREÇO (DE COMPRA E VENDA)

import pandas as pd

tabela = pd.read_excel('Produtos.xlsx')

display(tabela)

# ATUALIZAR A COLUNA DE EXPORTAÇÃO

# editar coluna COTAÇÃO onde a moeda é dólar


# tabela.loc[linha, coluna]

#(tabela['Moeda'] == 'Dólar') - localiza na coluna moeda os itens dólar

# um igual (=) modifica / dois iguais (==) verifica/compara se é igual

# se quisesse editar em todas as coluna serio > tabela.loc[(tabela['Moeda'] == 'Dólar'), : ]

tabela.loc[(tabela['Moeda'] == 'Dólar'), 'Cotação'] = float(cotacao_dolar)

tabela.loc[(tabela['Moeda'] == 'Euro'), 'Cotação'] = float(cotacao_euro)

tabela.loc[(tabela['Moeda'] == 'Ouro'), 'Cotação'] = float(cotacao_ouro)

# ATUALIZAR A COLUNA DE PREÇO DE COMPRA (preço original x cotação)

# coluna se seleciona entre colchetes

tabela["Preço de Compra"] = tabela["Preço Original"] * tabela ["Cotação"]

# ATUALIZAR A COLUNA DE PREÇO DE VENDA (preço original x margem)

tabela["Preço de Venda"] = tabela["Preço de Compra"] * tabela ["Margem"]

#FORMATAÇÃO

#valor em reais com duas casas decimais

# tabela['Preço de Compra'] = tabela['Preço de Compra'].map('R${:.2f}'.format)

tabela['Preço Original'] = tabela['Preço Original'].map('R${:.2f}'.format)

tabela['Cotação'] = tabela['Cotação'].map('R${:.3f}'.format)

tabela['Preço de Compra'] = tabela['Preço de Compra'].map('R${:.2f}'.format)

tabela['Preço de Venda'] = tabela['Preço de Venda'].map('R${:.2f}'.format)

display (tabela)

# PASSO 5: EXPORTAR A BASE DE PREÇOS ATUALIZADOS


tabela.to_excel('Produtos_novo.xlsx', index=False)

# se colocar o mesmo nome, ele substitui

# index=False > retira a coluna de indice (os números a esquerda)

AULA 4

# ESSE PASSO A PASSO SERVE PARA TODO PROJETO DE CIÊNCIA DE DADOS

# Passo 1: Entendimento do Desafio

#prever as vendas baseado nos dadosde investimento em tv/radio/jornal

# Passo 2: Entendimento da Área/Empresa

# Passo 3: Extração/Obtenção de Dados

import pandas as pd

tabela = pd.read_csv('advertising.csv')

display (tabela)

# Passo 4: Ajuste de Dados (Tratamento/Limpeza)

# Verificar sempre atravé do > print(tabela.info())

!pip install matplotlib

!pip install seaborn

!pip install scikit-learn

# Passo 5: Análise Exploratória

#correlação

display(tabela.corr())

# Gráficos (instalar eles > !pip install matplotlib / !pip install seaborn)

# matplotlib # seabord
import seaborn as sns

import matplotlib.pyplot as plt

# criar gráficos

# cmap = 'escala de cores" do seaborn

# annot = True coloca os nºs dentro do gráfico

sns.heatmap(tabela.corr(), cmap='Blues', annot=True)

# se quisesse correlacionar apenas colunas especificas seria: sns.heatmap(tabela[['TV',


'VENDAS']].corr(), cmap='Blues', annot=True)

# exibir gráficos

plt.show()

# Passo 6: Modelagem + Algoritmos (Aqui que entra a Inteligência Artificial, se necessário)

# Instalador da IA (!pip install scikit-learn)

# O que preciso pra criar uma IA: uma base de dados para a IA aprender

# Separar essa base em duas partes: X e Y

# Y é quem eu quero prever

# X é quem vou usar pra prever o Y - o resto da tabela

# No exemplo: Y = Vendas / X = o restante da tabela

# Um colchetes [] para selecionar uma coluna / Dois colchetes [[]] quando quero selecioanr
mais de uma

y = tabela["Vendas"]

x = tabela[['TV', 'Radio', 'Jornal']]

# Dividir a base de dados em 2 (Dados de treino [maior parte] e Dados de teste)

# Para que a IA tenha onde testar, após treinar

# Modelo de seleção e separação para treino e teste


from sklearn.model_selection import train_test_split

# test_size=0.3 é você determinando que 30% dos dados são para teste

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

# CRIAR IA

# importar ela

from sklearn.linear_model import LinearRegression

from sklearn.ensemble import RandomForestRegressor

# criar ela

modelo_regressaolinear = LinearRegression()

modelo_arvoredecisao = RandomForestRegressor()

# treinar ela

modelo_regressaolinear.fit(x_treino, y_treino)

modelo_arvoredecisao.fit(x_treino, y_treino)

# Passo 7: Interpretação de Resultados

# importar ferramante para calcular o r² que dirá qual modelo é melhor ou seja, mais próximo
da realidade

from sklearn.metrics import r2_score

# fazer as previsões

previsao_arvoredecisao = modelo_arvoredecisao.predict (x_teste)

previsao_regressaolinear = modelo_regressaolinear.predict (x_teste)


# comparar a previsão com y_teste

print(r2_score(y_teste, previsao_arvoredecisao))

print(r2_score(y_teste, previsao_regressaolinear))

# criar uma tabela vazia

# DataFrame é o nome que o pandas dá pras suas tabelas

# e atribui os iten que vão existir nela e o que eles representam

tabela_auxiliar = pd.DataFrame()

tabela_auxiliar['y_teste'] = y_teste

tabela_auxiliar['Previsão Regressão Linear'] = previsao_regressaolinear

tabela_auxiliar['Previsão Árvore de Decisão'] = previsao_arvoredecisao

# criar um grafico de linha

# para alterar o tamanho do gráfico

# largura por altura

plt.figure (figsize=(15, 5))

sns.lineplot(data=tabela_auxiliar)

plt.show()

tabela_nova = pd.read_csv("novos.csv")

display(tabela_nova)

previsao = modelo_arvoredecisao.predict(tabela_nova)

print(previsao)

# Com dados de publicidade, quanto venderiamos?

# Utilizar o modelo já treinado e confiavel


# Importar a nova tabela

# E pedir a previsão

Você também pode gostar