Aprenda o que é a normalização de dados, por que ela é tão importante e como você pode normalizar dados no Python. Aplique esse conhecimento ao comparar ações!
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:
Normalizar Dados no Python – Normalizando Cotações de Ações
Na aula de hoje eu vou te mostrar o que é normalização de dados, porque ela é importante e como você pode normalizar dados no Python.
Em resumo, a normalização de dados consiste em colocar todos os dados em uma mesma escala. Esse processo é extremamente útil quando queremos fazer comparações entre conjuntos de dados em escalas diferentes.
No contexto das cotações de ações, a normalização se torna uma ferramenta essencial para determinar o desempenho dos ativos. Às vezes, pode ser difícil identificar qual ação está performando melhor apenas olhando os dados brutos.
Nesta aula, vamos abordar de forma prática como você pode comparar o desempenho das ações depois de normalizar dados no Python. Além disso, vamos aprender a plotar essa normalização em um gráfico, permitindo uma análise visual mais eficiente e clara.
Para aproveitar ao máximo esta aula, é recomendado que você faça o download do material disponível, pois ele irá te guiar ao longo de todo o processo e auxiliará na assimilação do conteúdo.
Código Para Pegar Cotações do Yahoo Finance
No material disponível para download, você terá acesso a um código em Python que permite obter as cotações de ações do Yahoo Finance.
import pandas as pd
import pandas_datareader.data as pdr
import yfinance
yfinance.pdr_override()
ativos = ["ITUB3.SA", "^BVSP", "VALE3.SA", "PETR3.SA"]
data_final = "2023-06-30"
data_inicial = "2023-01-01"
tabela_cotacoes = pdr.get_data_yahoo(ativos, data_inicial, data_final)["Adj Close"]
display(tabela_cotacoes)
Para garantir o funcionamento correto desse código, é necessário ter as bibliotecas listadas nele instaladas. Se você deseja aprender como construir um código como esse e obter cotações de ações do Yahoo Finance, recomendo acessar essa aula.
Ao executar o código, ele irá retornar uma tabela com as cotações desejadas:
Observação: Se você não estiver usando o Jupyter Notebook, você deverá exibir a tabela com um print em vez de um display.
Normalização de Dados
Vamos usar a tabela gerada acima como exemplo. Digamos que queremos comparar o desempenho desses quatro ativos durante o primeiro semestre de 2023.
Ao observar a tabela, fica difícil de analisar qual ativo teve o melhor e o pior retorno, uma vez que seus valores estão em escalas diferentes.
Para realizar uma análise mais precisa e comparar informações em escalas diferentes, é necessário realizar o processo de normalização dos dados. Isso significa ajustar todos os valores para uma mesma base.
Existem várias maneiras de fazer isso. Nesta aula, vamos aplicar o procedimento de colocar todos os valores em uma base 1. Em outras palavras, vamos ajustar o valor inicial de todos os ativos para 1 e os subsequentes serão calculados com base nesse valor.
Dessa forma, teremos o valor inicial de todos os ativos ajustado para 1 e os valores posteriores serão normalizados em relação a essa primeira linha. Ao final, poderemos comparar os valores normalizados dos quatro ativos. Essa técnica facilitará a comparação e análise dos dados.
Como Normalizar Dados no Python
Existem diversas abordagens para normalizar dados no Python. Eu vou mostrar para vocês uma das mais simples e diretas.
Basicamente, o que nosso código irá fazer para normalizar dados no Python será dividir o valor de cada linha das colunas dos ativos pelo primeiro valor de cada um. Dessa forma, estaremos transformando todos os valores iniciais em 1, pois estaremos dividindo o valor inicial por ele próprio.
Para realizar essa normalização de forma prática e rápida, podemos adicionar o seguinte código logo após o código que gera nossa tabela:
tabela_cotacoes_norm = tabela_cotacoes / tabela_cotacoes.iloc[0]
display(tabela_cotacoes_norm)
Esse código cria uma nova variável chamada tabela_cotacoes_norm, que recebe a tabela original(tabela_cotacoes) dividida pela primeira linha da tabela (tabela_cotacoes.iloc[0]). Utilizamos a função iloc[0] do Pandas para obter o valor da primeira linha.
Ao fazer isso, o Pandas entende que queremos dividir cada linha de cada coluna pelo valor da primeira linha correspondente àquela coluna.
Em seguida, exibimos a tabela final com display(tabela_cotacoes_norm).
Agora, fica muito mais fácil visualizar os dados na tabela, uma vez que todos os valores estão normalizados e começam em 1. Podemos facilmente analisar o desempenho de cada ativo ao longo do semestre, comparando os valores entre eles.
Com essa normalização, podemos concluir que, no período analisado, a Petrobrás teve um melhor desempenho entre os quatro ativos, enquanto a Vale teve o pior desempenho.
E para melhorar ainda mais, é possível exibir essa tabela normalizada na forma de um gráfico. Para isso, basta executar o seguinte código:
tabela_cotacoes_norm.plot()
Com o gráfico, nossa análise fica ainda mais visual e intuitiva. Podemos ver claramente os momentos de queda e ascensão de cada ativo e compará-los ao longo de todo o período.
Conclusão – Normalizar Dados no Python
Nessa aula, você aprendeu como normalizar dados no Python, a importância desse processo e como fazer isso de forma rápida e prática, utilizando apenas algumas linhas de código.
Além disso, mostrei como exibir esses dados na forma de um gráfico, o que otimiza sua análise e comparação entre eles.
Agora, além de saber como obter cotações de ações, você também sabe como normalizar os dados dessas cotações no Python e obter uma análise ainda mais precisa do mercado financeiro.
E caso tenha interesse em aprofundar seus conhecimentos em análise de dados, recomendo que acesse nosso Minicurso Gratuito de Análise de Dados! É uma ótima oportunidade para expandir suas habilidades nesse campo.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.