<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: vikttu</title>
    <description>The latest articles on DEV Community by vikttu (@vikttu).</description>
    <link>https://dev.to/vikttu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F149161%2F9005de5b-13f4-4d16-bff5-621729fcf759.jpg</url>
      <title>DEV Community: vikttu</title>
      <link>https://dev.to/vikttu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vikttu"/>
    <language>en</language>
    <item>
      <title>Como criar um projeto iniciante em análise de dados</title>
      <dc:creator>vikttu</dc:creator>
      <pubDate>Wed, 18 Dec 2024 13:48:21 +0000</pubDate>
      <link>https://dev.to/vikttu/como-criar-um-projeto-iniciante-em-analise-de-dados-1kj8</link>
      <guid>https://dev.to/vikttu/como-criar-um-projeto-iniciante-em-analise-de-dados-1kj8</guid>
      <description>&lt;p&gt;Olá, hoje vamos criar um primeiro projeto para você, iniciante na área de dados, conseguir começar a criar um portfólio bacana e com todas as ferramentas necessárias para trabalhar com dados!&lt;/p&gt;

&lt;p&gt;Esse projeto mostra que, mesmo que você seja um iniciante em python, sempre é possível encontrar bibliotecas para a execução de tarefas mais complexas que você ainda não saiba como fazer do zero (algumas coisas nem vale a pena fazer do zero também). Antes de tudo, é importante que você tenha um conhecimento inicial de python e SQL, além de um pouco de conhecimento de Tableau para a criação do dashboard. Não é necessário que você seja um expert, mas saber o básico destas ferramentas irá ajudá-lo a seguir o projeto com maior facilidade, mas você pode ler o artigo inteiro e tentar reproduzir ele também pois vou tentar explicar da forma mais simples possível para que você já saia criando o seu primeiro dashboard!&lt;/p&gt;

&lt;p&gt;Vamos começar?&lt;/p&gt;

&lt;p&gt;Primeiro passo é ter seu ambiente de desenvolvimento configurado na sua máquina, os requisitos para este projeto são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3&lt;/li&gt;
&lt;li&gt;MySQL 9.1 (versão mais recente no site)&lt;/li&gt;
&lt;li&gt;Tableau Public&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Estou desenvolvendo este projeto em um ambiente com Windows 11, então algumas coisas podem variar dependendo do seu OS ou versão Windows, mas nada que fuja muito do que vou apresentar aqui.&lt;/p&gt;

&lt;p&gt;Vamos começar com o Python. Vá até o site &lt;a href="https://www.python.org/downloads/" rel="noopener noreferrer"&gt;&lt;code&gt;https://www.python.org/downloads/&lt;/code&gt;&lt;/a&gt; e baixe a versão mais recente do instalador. Após a instalação, reinicie o seu PC para evitar bugs (como aconteceu comigo hahah) e conseguir usar a linguagem sem problemas na linha de comando.&lt;/p&gt;

&lt;p&gt;Depois, com o MySQL, vá para o site &lt;a href="https://dev.mysql.com/downloads/mysql/" rel="noopener noreferrer"&gt;&lt;code&gt;https://dev.mysql.com/downloads/mysql/&lt;/code&gt;&lt;/a&gt; e baixe o instalador do MySQL Community Server. Só seguir a instalação padrão e tudo irá correr perfeitamente.&lt;/p&gt;

&lt;p&gt;Agora, com o Tableau Public, entre em &lt;a href="https://www.tableau.com/pt-br/products/public/download" rel="noopener noreferrer"&gt;&lt;code&gt;https://www.tableau.com/pt-br/products/public/download&lt;/code&gt;&lt;/a&gt; e crie a sua conta para iniciar o download. A criação da conta também será necessária para a publicação do seu primeiro dashboard e também será muito importante para o seu portifólio!&lt;/p&gt;

&lt;p&gt;Outra ferramenta que não é necessária, mas que é muito bom ter, é o git e uma conta no github. Eu coloquei meu código todo com commits e comentários &lt;a href="https://github.com/vikttu/data-analysis" rel="noopener noreferrer"&gt;&lt;em&gt;aqui&lt;/em&gt;&lt;/a&gt; e é muito bom usar o github como um portfólio do seu código, mas se você não sabe git não tem problema e seu projeto vai funcionar da mesma forma.&lt;/p&gt;

&lt;p&gt;Quando já estiver com tudo configurado, vá para o diretório aonde você colocará a sua aplicação, então, vamos fazer mais algumas configurações. Você precisará de algumas bibliotecas do Python para usar no projeto, vou explicar o que cada uma faz e como instalar elas.&lt;/p&gt;

&lt;p&gt;A primeira biblioteca que vamos utilizar é a BeautifulSoup. Os dados que vamos precisar para este projeto estão na internet e vamos ter que fazer um processo chamado Web Scraping para coletá-los, BeautifulSoup nos ajudará com esse processo nos trazendo ferramentas que facilitam essa coleta.&lt;br&gt;
Para instalá-lo, é só ir no terminal e digitar&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install beautifulsoup4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;e... pronto! Instalar dependências em python é muito simples!&lt;/p&gt;

&lt;p&gt;A segunda biblioteca que vamos utilizar é requests. Se vamos trabalhar com páginas web precisamos de algo que nos ajude a performar ações CRUD com APIs, então essa será a nossa escolha. De novo, só instalar no terminal com&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install requests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos também implementar boas práticas e utilizar variáveis de ambiente (para que ninguém descubra nossas senhas, nomes de usuário e outras informações sensíveis no nosso código), então vamos precisar de os e dotenv. A os já deve estar instalada por padrão no python, já a dotenv não, então é o processo de sempre&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install dotenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E, por último, mas não menos importante, precisamos de uma biblioteca para conectar ao nosso banco de dados MySQL, então vamos utilizar mysql.connector&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install mysql-connector-python
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uma vez que temos o ambiente de desenvolvimento configurado, é só partir para a parte mais divertida do processo, PROGRAMAR!!&lt;/p&gt;

&lt;p&gt;Nós vamos fazer um projeto que será dividido em duas partes (em relação ao código), o web scraping e a manipulação do banco de dados, então vamos iniciar criando o arquivo do web scraping, que também será aonde o código principal irá ficar, e depois vamos criar um arquivo para colocar as nossas funções de manipulação de banco de dados. Isso nos ajuda não só na manutenção do código como também na sua reutilização.&lt;/p&gt;

&lt;p&gt;Crie um arquivo chamado &lt;code&gt;web_scrapper.py&lt;/code&gt; no diretório da aplicação.&lt;br&gt;
Em seguida, vamos importar as nossas dependências que instalamos anteriormente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from bs4 import BeautifulSoup
import requests
import db_manager
import os
from dotenv import load_dotenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Da dotenv nós só vamos precisar da função &lt;code&gt;load_dotenv&lt;/code&gt; e por isso vamos importar só ela.&lt;/p&gt;

&lt;p&gt;Primeiro vamos pensar na estrutura do nosso código e escrever o que queremos que cada coisa faça, etapa por etapa, assim fica mais organizado. Nós queremos que o nosso código faça as seguintes ações:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Criar o web scraper e guardar os dados em variáveis&lt;/li&gt;
&lt;li&gt;Popular o banco de dados com os dados que pegamos&lt;/li&gt;
&lt;li&gt;Pegar os dados do banco e colocar em um arquivo csv para podermos analizá-los no Tableau Public&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Vamos por partes, a primeira parte que queremos criar e testar é a da criação do web scraper, então o jeito é começar por ela!&lt;br&gt;
Nós vamos usar um site feito para esse tipo de coisa, o &lt;a href="https://www.scrapethissite.com/" rel="noopener noreferrer"&gt;https://www.scrapethissite.com/&lt;/a&gt;, lá você encontra vários tipos de páginas para praticar web scraping. Estamos interessados particularmente no modelo para iniciantes, então vamos fazer um request para essa página:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;page_countries_area_population = requests.get(
    "https://www.scrapethissite.com/pages/simple/"
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aqui utilizamos o método &lt;code&gt;get&lt;/code&gt; do &lt;code&gt;requests&lt;/code&gt; que seria equivalente ao &lt;code&gt;read&lt;/code&gt; do CRUD, ele retorna a página web e armazena ela inteira na variável que criamos &lt;code&gt;page_countries_area_population&lt;/code&gt;.&lt;br&gt;
Depois, precisamos que o BeautifulSoup faça um parse do html da página para que ele consiga encontrar as informações que precisamos. Para isso, vamos criar uma variável chamada &lt;code&gt;soup&lt;/code&gt; e chamar o &lt;code&gt;BeaultifulSoup&lt;/code&gt; e passar o texto da variável que criamos para ele&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;soup = BeautifulSoup(page_countries_area_population.text, "html.parser")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso vai retornar a página já com o parse e os métodos do &lt;code&gt;BeautifulSoup&lt;/code&gt; atrelados a ela dentro da variável que criamos, assim facilitando o nosso trabalho.&lt;br&gt;
Agora precisamos identificar as informações que queremos retirar da página, para isso precisamos inspecionar a página web e identificar os elementos e seus padrões dentro do documento html. Neste caso vemos que os nomes dos países estão dentro de uma tag &lt;code&gt;h3&lt;/code&gt; e com a classe &lt;code&gt;country-name&lt;/code&gt;, então vamos usar isso para pegar os nomes dos países&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;country_names = soup.findAll("h3", attrs={"class": "country-name"})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aqui chamamos o &lt;code&gt;soup&lt;/code&gt; que criamos anteriormente e chamamos a função &lt;code&gt;findAll&lt;/code&gt; que vai buscar todas as instâncias de nomes de países para nós. O primeiro parâmetro é o elemento html que estamos procurando e o segundo seriam os seus atributos, já que podem ter outras tags &lt;code&gt;h3&lt;/code&gt; que não queremos que ele selecione, neste caso passamos a classe &lt;code&gt;country-name&lt;/code&gt; para identificar os elementos que queremos.&lt;br&gt;
Repetimos o processo para o número de habitantes e a área de cada país&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;country_populations = soup.findAll("span", attrs={"class": "country-population"})
country_areas = soup.findAll("span", attrs={"class": "country-area"})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Antes de passar esses dados para o banco de dados, vamos limpá-los e deixar num formato que evite coisas indevidas entrem com eles. Para isso eu vou criar uma lista de tuplas para armazenar os dados antes de passarmos eles para o banco, pois isso facilitará o processo. Antes de adicioná-los, porém, precisamos tirar espaços em branco do nome dos países também.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;populate_country = []

for country_name, country_population, country_area in zip(country_names, country_populations, country_areas):
    item = (country_name.text.strip(), country_population.text, country_area.text)
    populate_country.append(item)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E com isso já temos os dados que precisamos! Podemos riscar essa primeira tarefa da nossa lista!&lt;/p&gt;

&lt;p&gt;Na parte dois desse artigo eu vou ensinar como manipular um banco de dados usando python e terminar o nosso projeto 😉&lt;/p&gt;

</description>
      <category>dataanalysis</category>
      <category>tableau</category>
      <category>python</category>
      <category>sql</category>
    </item>
    <item>
      <title>Projects</title>
      <dc:creator>vikttu</dc:creator>
      <pubDate>Tue, 24 Sep 2024 14:24:13 +0000</pubDate>
      <link>https://dev.to/vikttu/projects-13o8</link>
      <guid>https://dev.to/vikttu/projects-13o8</guid>
      <description>&lt;h2&gt;
  
  
  Hi! This is a list of the projects that I've done at work, enjoy!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Mindhub (Javascript, CSS, HTML, Ruby on Rails)
Content hub for the pharmaceutical industry focused on spreading knowledge between doctors and researchers. Video and courses platform for big enterprises of the field to use and create courses for their employees. Used mainly by Novartis.&lt;/li&gt;
&lt;li&gt;Strategic dashboard for business projects (Alteryx, Tableau, Excel, SAS, Access)
Focused on communicating the bank board about how the projects of time relief from business projects tracks were going. &lt;/li&gt;
&lt;li&gt;Tactic adherence rate dashboard (Alteryx, Tableau, Excel, SAS, Access)
For the new process of maintaining and opening corporate accounts at management level.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Olá! Esta é uma lista dos projetos que eu fiz no meu trabalho!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Mindhub (Javascript, CSS, HTML, Ruby on Rails)
Hub de conteúdos para a indústria farmacêutica focado em disseminar conhecimento entre os médicos e pesquisadores. Plataforma de vídeos e cursos para grandes empresas do ramo utilizarem para criar cursos para seus funcionários. Utilizada principalmente pela Novartis.&lt;/li&gt;
&lt;li&gt;Painel estratégico de projetos PJ (Alteryx, Tableau, Excel, SAS, Access)
Focado em atualizar a diretoria do banco sobre o andamento dos projetos de desoneração das esteiras de processos PJ. &lt;/li&gt;
&lt;li&gt;Painel tático de aderência (Alteryx, Tableau, Excel, SAS, Access)
Para o novo processo de manutenção e abertura de contas PJ em nível gerencial.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>personalstuff</category>
    </item>
  </channel>
</rss>
