<?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: Luiza Bizoni</title>
    <description>The latest articles on DEV Community by Luiza Bizoni (@luizabizoni).</description>
    <link>https://dev.to/luizabizoni</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%2F387932%2F99d17c0c-e856-4e9a-95c2-c518324898c4.jpeg</url>
      <title>DEV Community: Luiza Bizoni</title>
      <link>https://dev.to/luizabizoni</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/luizabizoni"/>
    <language>en</language>
    <item>
      <title>SQL: comandos básicos</title>
      <dc:creator>Luiza Bizoni</dc:creator>
      <pubDate>Wed, 16 Sep 2020 11:04:00 +0000</pubDate>
      <link>https://dev.to/luizabizoni/sql-comandos-basicos-2bc3</link>
      <guid>https://dev.to/luizabizoni/sql-comandos-basicos-2bc3</guid>
      <description>&lt;p&gt;Nesse artigo veremos os comandos básicos da linguagem SQL mais utilizados no dia a dia de uma cientista de dados e como utilizá-los. &lt;/p&gt;

&lt;p&gt;Se você quer entender como funciona um banco de dados relacional, te convido a ler &lt;a href="https://dev.to/luizabizoni/banco-de-dados-relacional-introducao-24an"&gt;este outro artigo&lt;/a&gt;, no qual expliquei sobre a terminologia utilizada, o conceito ACID, os grupos de comandos da linguagem SQL, as restrições de integridade e as três formas normais.&lt;/p&gt;

&lt;center&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvxyfuugyh3iuqcpnvj2j.png" alt="Principais comandos SQL"&gt;&lt;/center&gt;

&lt;h2&gt;
  
  
  SELECT
&lt;/h2&gt;

&lt;p&gt;A instrução "SELECT" é utilizada para fazer consultas no banco de dados. Seu resultado é uma cópia do banco de dados com as especificações indicadas. Não há alteração dos dados no banco.&lt;/p&gt;

&lt;p&gt;A maior parte dos comandos SQL são instruções "SELECT" e normalmente é a primeira palavra da instrução SQL.&lt;/p&gt;

&lt;p&gt;Ao executar a instrução, o SGBD irá procurar a tabela ou tabelas especificadas, selecionar as colunas escolhidas e as linhas que satisfazem os critérios especificados, classificando ou agrupando estas na ordem indicada.&lt;/p&gt;

&lt;p&gt;A sintaxe mais básica da instrução "SELECT" é escrita da seguinte forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT colunas FROM tabela
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Caso você queira selecionar todas as colunas da tabela indicada, basta utilizar "*" no lugar de "colunas", deste jeito:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM tabela
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exemplos
&lt;/h3&gt;

&lt;p&gt;Imagine que temos uma tabela chamada "Funcionários" que possuí diversas informações sobre os funcionários de uma empresa.&lt;/p&gt;

&lt;p&gt;Precisamos do nome e sobrenome de todos os funcionários da empresa em ordem alfabética. Para isso selecionaremos todas as linhas das colunas "Nome" e "Sobrenome" da tabela "Funcionários" e utilizaremos a cláusula "ORDER BY" para ordenar a consulta.&lt;/p&gt;

&lt;p&gt;A sintaxe será:&lt;/p&gt;

&lt;center&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fr3he8pk4vyzjgr2ih3p8.png" alt="Select e Order By"&gt;&lt;/center&gt;

&lt;p&gt;A empresa decide que o reajuste salarial para o próximo ano será de 5% para todos os funcionários e precisamos atualizar a consulta acima incluindo o salário atual e o salário com reajuste para todos os funcionários.&lt;/p&gt;

&lt;p&gt;Para isso selecionaremos todas as linhas das colunas "Nome" e "Sobrenome" da tabela "Funcionários", como fizemos anteriormente, e também as da coluna "Salário", que renomearemos como "Salário Atual". Para calcular o valor do salário com reajuste multiplicaremos os valores da coluna "Salário" por 1.05 e este campo será renomeado como "Salário Reajustado".&lt;/p&gt;

&lt;p&gt;A sintaxe, portanto, passará a ser:&lt;/p&gt;

&lt;center&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyvkxhj6p77102hl6hb65.png" alt="Select e cálculo"&gt;&lt;/center&gt;

&lt;p&gt;Por último, iremos fazer uma nova consulta na qual retorne os nomes dos cargos do departamento de tecnologia da empresa que tenham sido atribuídos a pelo menos 10 funcionários e a quantidade de funcionários com estes cargos.&lt;/p&gt;

&lt;p&gt;Neste caso, selecionaremos a coluna "Cargo" e faremos a contagem de funcionários com aquele cargo utilizando a função "count" com o parâmetro "Cargo". Utilizamos a cláusula "where" para filtrar apenas os funcionários do departamento de tecnologia e "having" para filtrar apenas os cargos que tenham sido atribuídos a pelo menos 10 funcionários e agrupamos pelo nome do cargo utilizando a cláusula "group by" assim:&lt;/p&gt;

&lt;center&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdwqsysmcaclpwegap4tv.png" alt="Select, count, where, group by e having"&gt;&lt;/center&gt;

&lt;h2&gt;
  
  
  INSERT
&lt;/h2&gt;

&lt;p&gt;A instrução "INSERT" é o comando para inclusão no banco de dados. Ele é utilizado para adicionar um ou vários registros a uma tabela.&lt;/p&gt;

&lt;p&gt;A sintaxe mais básica da instrução "INSERT" é escrita da seguinte forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSERT INTO tabela (coluna1, coluna2, coluna3)
VALUES (valor1, valor2, valor3)

--OU

INSERT INTO tabela VALUES (valor1, valor2, valor3)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exemplos
&lt;/h3&gt;

&lt;p&gt;Vamos inserir na tabela "Funcionários" a Maria Sousa, que terá o código identificador "741" e seu salário é R$2500,00.&lt;/p&gt;

&lt;p&gt;Na primeira sintaxe informamos o nome das colunas que receberão os valores e os valores que serão inseridos na tabela. É importante lembrar que os valores devem estar na mesma ordem das suas respectivas colunas.&lt;/p&gt;

&lt;p&gt;Na segunda forma não declaramos as colunas. Atente-se para este caso, pois é necessário informar valores para todas as colunas da tabela para que o comando funcione.&lt;/p&gt;

&lt;p&gt;A sintaxe será:&lt;/p&gt;

&lt;center&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fabtykkdqsbo9tjpa7uku.png" alt="Insert"&gt;&lt;/center&gt;

&lt;h2&gt;
  
  
  UPDATE
&lt;/h2&gt;

&lt;p&gt;A instrução "UPDATE" é o comando utilizado para atualização de registros no banco de dados.&lt;/p&gt;

&lt;p&gt;A sintaxe mais básica da instrução "UPDATE" é escrita da seguinte forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;UPDATE tabela
SET coluna = "novo_valor"
WHERE condição
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exemplos
&lt;/h3&gt;

&lt;p&gt;Vamos atualizar na tabela "Funcionários" o sobrenome da Maria para "Souza" e seu salário para R$3500,00.&lt;/p&gt;

&lt;p&gt;Informamos o nome da tabela que receberá as alterações, as colunas e seus respectivos valores a serem alterados na tabela e a cláusula que impõe a condição de execução do comando é que o "IDFuncionario" seja igual a "741", que é o código identificador da Maria.&lt;/p&gt;

&lt;p&gt;A sintaxe será:&lt;/p&gt;

&lt;center&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvqahno4ayvxvx5e6xmnw.png" alt="Update"&gt;&lt;/center&gt;

&lt;h2&gt;
  
  
  DELETE
&lt;/h2&gt;

&lt;p&gt;A instrução "DELETE" é o comando utilizado para apagar registros no banco de dados.&lt;/p&gt;

&lt;p&gt;A sintaxe mais básica da instrução "DELETE" é escrita da seguinte forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DELETE FROM tabela
WHERE condição
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exemplo
&lt;/h3&gt;

&lt;p&gt;Vamos excluir da tabela "Funcionários" aquele que possuí o código identificador igual a "3084".&lt;/p&gt;

&lt;p&gt;Para isso informamos que a tabela de onde desejamos deletar o registro é a "Funcionários" e a cláusula que impõe a condição de execução do comando é que o "IDFuncionario" seja igual a "3084".&lt;/p&gt;

&lt;p&gt;A sintaxe será:&lt;/p&gt;

&lt;center&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbz9x03jfyuia04fs9vxd.png" alt="Delete"&gt;&lt;/center&gt;




&lt;p&gt;&lt;strong&gt;REFERÊNCIA&lt;/strong&gt;:&lt;br&gt;
ELMASRI, Ramez e NAVATHE, Shamkant B. &lt;strong&gt;Sistemas de Banco de Dados&lt;/strong&gt;. Pearson Addison Wesley. 6a Edição, 2011.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Este post é um resumo do que aprendi na Unidade 1 da disciplina "Banco de Dados Relacionais e não Relacionais". Esta é ministrada pelo Prof. Henrique Batista da Silva no curso de especialização em Ciência de Dados e Big Data da PUC Minas Virtual.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>sql</category>
      <category>database</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Banco de dados relacional - Introdução</title>
      <dc:creator>Luiza Bizoni</dc:creator>
      <pubDate>Sun, 09 Aug 2020 22:08:00 +0000</pubDate>
      <link>https://dev.to/luizabizoni/banco-de-dados-relacional-introducao-24an</link>
      <guid>https://dev.to/luizabizoni/banco-de-dados-relacional-introducao-24an</guid>
      <description>&lt;p&gt;O modelo relacional foi introduzido na década de 1970 e é uma linguagem unificada para definição e manipulação de dados.&lt;/p&gt;

&lt;p&gt;Para auxiliar no gerenciamento de bancos de dados relacionais são usados sistemas conhecidos como SGBDs (Sistemas de Gerenciamento de Bancos de Dados). Alguns exemplos são: MySQL, Oracle e SQL Server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Terminologias:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dados&lt;/strong&gt;: fatos com significado implícito.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tuplas&lt;/strong&gt;: linhas de uma tabela.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Atributo&lt;/strong&gt;: Nome da coluna de uma tabela.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domínio&lt;/strong&gt;: Conjunto de valores que um atributo pode ter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relação&lt;/strong&gt;: tabela (no modelo relacional também são chamadas de entidade).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Modelo de dados
&lt;/h2&gt;

&lt;p&gt;Modelo de dados é um conjunto de conceitos que descrevem o banco de dados e as restrições que este deve garantir. Pode-se organizar por nível de abstração do mais para o menos abstrato da seguinte forma:&lt;br&gt;
&lt;/p&gt;
&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t-IJ5v8E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/30kuq6580idsb5lk3yps.png" alt="Modelos de dados ordenados por nível de abstração" width="480"&gt;&lt;/center&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Modelo conceitual&lt;/strong&gt;: conceitos que descrevem os dados como são percebidos pelo usuário. Baseia-se em entidades, atributos e relacionamentos. São alto nível e não dependem de SGBDs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modelo Lógico&lt;/strong&gt;: intermediário entre o modelo conceitual e o modelo físico. São representativos ou de implementação. Um exemplo é o modelo relacional.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modelo físico&lt;/strong&gt;: conceitos que descrevem como os dados estão armazenados no computador (tipo e tamanho de registros). São baixo nível.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Conceitos
&lt;/h2&gt;

&lt;p&gt;Para que um banco de dados relacional funcione de maneira correta é necessário atender a 4 conceitos:&lt;br&gt;
&lt;/p&gt;
&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rEliuALa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/155k73vc6704266s6662.png" alt="ACID = Atomicidade, Consistência, Isolamento e Durabilidade" width="480"&gt;&lt;/center&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Atomicidade&lt;/strong&gt;: a transação é executada inteiramente ou não é executada e volta ao estado inicial.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistência&lt;/strong&gt;: apenas dados válidos são salvos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Isolamento&lt;/strong&gt;: uma transação não sofre interferência de outra transação corrente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Durabilidade&lt;/strong&gt;: o que é salvo não será perdido.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Linguagem
&lt;/h2&gt;

&lt;p&gt;A SQL é a linguagem de pesquisa declarativa padrão para banco de dados relacional e se divide em 5 grupos de comandos:&lt;br&gt;
&lt;/p&gt;
&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CcMmoGRG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/aslikch692lwa90ohndh.png" alt="Grupos de comandos SQL" width="480"&gt;&lt;/center&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DDL&lt;/strong&gt;: Data Definition Language - para definir os esquemas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DML&lt;/strong&gt;: Data Manipulation Language - para manipular os esquemas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DCL&lt;/strong&gt;: Data Control Language - para conceder ou remover privilégios de usuários de bancos de dados em objetos destes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DQL&lt;/strong&gt;: Data Query Language - para fazer consultas no banco de dados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TCL&lt;/strong&gt;: Transaction Control Language - para lidar com transações no banco de dados.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Chaves
&lt;/h2&gt;

&lt;p&gt;Uma &lt;strong&gt;chave primária&lt;/strong&gt; (primary key ou pk) é formada de um ou mais campos que serão utilizados como referência para criar relacionamentos com as demais entidades do banco de dados. Seus valores nunca se repetem nem podem ser nulos.&lt;br&gt;
Já uma &lt;strong&gt;chave estrangeira&lt;/strong&gt; (foreign key ou fk) é o campo que estabelece o relacionamento entre duas entidades. Portanto, um atributo corresponde ao mesmo atributo que é a chave primária de outra entidade. &lt;/p&gt;

&lt;h2&gt;
  
  
  Restrições de integridade
&lt;/h2&gt;

&lt;p&gt;A integridade dos dados é garantida pelo próprio SGBD por meio das  &lt;em&gt;restrições de integridade&lt;/em&gt;, que são utilizadas para garantir que os dados representem de forma assertiva a realidade modelada em um banco de dados relacional.&lt;br&gt;
&lt;/p&gt;
&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NtL5vkGv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f7qd78od2utfe1g9uwup.png" alt="Restrições de integridade" width="600"&gt;&lt;/center&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Restrição de entidade&lt;/strong&gt;: a chave primária de uma relação não pode ter valor nulo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restrição de chave&lt;/strong&gt;: a chave primária não pode se repetir. É também chamada de &lt;em&gt;restrição de unicidade&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restrição de domínio&lt;/strong&gt;: define o conjunto de valores possíveis ou permitidos que um campo pode ter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restrição referencial&lt;/strong&gt;: todo valor de chave estrangeira de uma entidade deve corresponder a um valor de chave primária a que a chave estrangeira se refere ou ser nulo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Normalização
&lt;/h2&gt;

&lt;p&gt;Uma entidade está normalizada se todos seus atributos são dependentes exclusivamente de suas chaves.&lt;/p&gt;

&lt;h3&gt;
  
  
  Formas normais:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1FN&lt;/strong&gt;: eliminação de atributos compostos e/ou multivalorados. Impede "entidades dentro de entidades".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2FN&lt;/strong&gt;: todo atributo de uma relação não pertencente a uma de suas chaves deve ser totalmente dependente da chave primária.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3FN&lt;/strong&gt;: eliminar dependência transitiva de atributo não-chave.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;REFERÊNCIA&lt;/strong&gt;:&lt;br&gt;
ELMASRI, Ramez e NAVATHE, Shamkant B. &lt;strong&gt;Sistemas de Banco de Dados&lt;/strong&gt;. Pearson Addison Wesley. 6a Edição, 2011.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Este post é um resumo do que aprendi na primeira parte da Unidade 1 da disciplina "Banco de Dados Relacionais e não Relacionais". Esta é ministrada pelo Prof. Henrique Batista da Silva no curso de especialização em Ciência de Dados e Big Data da PUC Minas Virtual.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>bancodedados</category>
      <category>sql</category>
      <category>modelorelacional</category>
    </item>
    <item>
      <title>S&amp;P 100 - Estudo de Caso</title>
      <dc:creator>Luiza Bizoni</dc:creator>
      <pubDate>Mon, 18 May 2020 23:32:13 +0000</pubDate>
      <link>https://dev.to/luizabizoni/s-p-100-estudo-de-caso-2oc1</link>
      <guid>https://dev.to/luizabizoni/s-p-100-estudo-de-caso-2oc1</guid>
      <description>&lt;p&gt;Neste estudo de caso aplico o que aprendemos no post de &lt;a href="https://dev.to/luizabizoni/explorando-dados-financeiros-com-python-introducao-4f6b"&gt;introdução ao uso de Python para análises financeiras&lt;/a&gt;. Estes artigos fazem parte da série "Ciência de Dados aplicada a Finanças".&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o S&amp;amp;P 100
&lt;/h2&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OHb7no5B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/25kcsqncmjplqzoffrk7.jpg" alt="Computador com a tela aberta no acompanhamento do Mercado de ações" width="600"&gt;&lt;/center&gt;
&lt;br&gt;
O S&amp;amp;P 100 é um índice ponderado de valor de mercado composto por 100 ativos do mercado de ações dos Estados Unidos mantido pela Standard &amp;amp; Poor's, uma empresa de consultoria financeira.

&lt;p&gt;Os ativos são qualificados devido ao seu tamanho de mercado, sua liquidez e sua representação de grupo industrial e são selecionados por um comitê de acordo com critérios de seleção. &lt;/p&gt;

&lt;h2&gt;
  
  
  Primeiras análises
&lt;/h2&gt;

&lt;p&gt;Nosso ponto de partida são quatro matrizes unidimensionais com os dados de cada uma das cem empresas do índice S&amp;amp;P 100 de 2017. Temos as seguintes matrizes: names, com o nome das empresas; prices, com o preço por ação; earnings, com o lucro por ação e sectors, com os setores.&lt;/p&gt;

&lt;p&gt;Vamos visualizar os primeiros três itens de cada matriz para entendermos os dados que estamos trabalhando.:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(names[:3]) #Retorna: ['Apple Inc', 'Abbvie Inc', 'Abbott Laboratories']
print(prices[:3]) #Retorna: [170.12, 93.29, 55.28, 145.3]
print(earnings[:3]) #Retorna: [9.2, 5.31, 2.41, 5.91]
print(sectors[:3]) #Retorna: ['Information Technology', 'Health Care', 'Health Care']
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Perceba que temos duas matrizes com elementos do tipo string, com os nomes e setores das empresas e duas com elementos do tipo float, com os preços por ação e os lucros por ação das empresas.&lt;/p&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6DYz1rWF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f87o2w0jv0k3uaxdzzl5.jpg" alt="Planta crescendo em um pote com moedas" width="600"&gt;&lt;/center&gt;
&lt;h3&gt;
  
  
  Análise da expectativa de crescimento das empresas
&lt;/h3&gt;

&lt;p&gt;Podemos fazer a análise da expectativa de crescimento das empresas calculando o índice preço/lucro, que é um índice usado para medir o quanto os preços das ações estão baratos ou caros em determinado período de tempo de comparação. Para isso, vamos dividir a matriz "prices" pela "earnings":&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import numpy as np

# Calcular índice P/L
pe = prices/earnings
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;O índice preço/lucro equivale a quantos dólares espera-se investir em uma empresa a fim de receber um dólar de proventos. Quanto mais alto o valor do índice, maior é a expectativa de crescimento daquela empresa.&lt;/p&gt;

&lt;p&gt;Vamos visualizar os nomes e setores das 10 empresas com maior expectativa de crescimento para verificar se existe algum padrão:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Visualizar o índices P/L de corte das top 10
pe_ordenado = np.sort(pe)
top_10 = x = np.percentile(pe_ordenado, 90)
print(top_10) # Retorna: 34.13901640570927

# Criar matriz de booleanos para filtragem
boolean_array = (pe &amp;gt;= top_10)

# Selecionar os nomes e setores das top 10
top_nomes = names[boolean_array]
top_setores = sectors[boolean_array]

# Visualizar
print(top_nomes)
print(top_setores)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ao filtrar as top 10 empresas, podemos verificar que existe um padrão nos setores nos quais estas fazem parte. Apenas três dos 11 setores do S&amp;amp;P 100 de 2017, aparecem no top 10 empresas com maior expectativa de crescimento, que são os de energia,  tecnologia da informação e bens não-essenciais. &lt;/p&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D1agsOkK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6zhvppuozd9djj1cp4w3.png" alt="Gráfico de dispersão dos índices preço/lucro das top dez empresas" width="600"&gt;&lt;/center&gt;

&lt;p&gt;Ao plotar um gráfico de dispersão dos índices preço/lucro dessas dez empresas é possível verificar um ponto com grande afastamento dos demais, que é da empresa do setor de energia Conocophillips. &lt;/p&gt;

&lt;h2&gt;
  
  
  Visualizando tendências
&lt;/h2&gt;

&lt;p&gt;Para fins de análise, voltaremos a verificar todo o grupo de empresas em busca de setores que possuam distribuições com menos outliers. &lt;/p&gt;

&lt;p&gt;Após analisar as médias e desvios padrão de cada um dos setores vamos seguir com os três com as maiores médias, mas que não possuem valores muito aberrantes. São eles: Bens Essenciais, Industrial e Tecnologia da Informação. &lt;/p&gt;

&lt;p&gt;Para visualizar e entender a distribuição dos índices preço/lucro desses setores, iremos plotar um histograma onde CS (Consumer Staples) são as empresas de Bens de Consumo, IN (Industrials) as do setor Industrial e IT (Information Technology) as do setor de Tecnologia da Informação:&lt;/p&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PWRJmu2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rmkz4aq8vrnkotvamn24.png" alt="Histograma dos índices preço/lucro das empresas dos setores de bens essenciais, indústria e tecnologia da informação" width="600"&gt;&lt;/center&gt;

&lt;p&gt;Veja que existe no setor de tecnologia da informação uma empresa com índice preço/lucro que ficou muito acima dos demais. Vamos identificar qual é essa empresa e qual foi seu índice preço/lucro no ano de 2017:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Identificar o índice P/L em it_pe que foi &amp;gt; 50
outlier_price = it_pe[it_pe &amp;gt;  50]

# Identificar a empresa com o índice P/L &amp;gt; 50
it_names = names[it_boolean_array]
outlier_name = it_names[it_pe &amp;gt;  50]

# Mostrar resultado
print("Em 2017, o índice P/L da empresa " + str(outlier_name[0]) + " foi de " + str(round(outlier_price[0], 2)) + ".")
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A empresa que apresentou índice preço/lucro bem acima da média entre as empresas do setor de Tecnologia da Informação foi a Paypal Holdings e seu índice foi de 54.68.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Este post foi escrito baseado em meu aprendizado com o curso "Introduction to Python for Finance" ministrado por Adina Howe disponível &lt;a href="https://campus.datacamp.com/courses/introduction-to-python-for-finance"&gt;neste link&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>estudodecaso</category>
      <category>sandp100</category>
      <category>analisededados</category>
      <category>mercadodeacoes</category>
    </item>
    <item>
      <title>Explorando dados financeiros com Python - introdução</title>
      <dc:creator>Luiza Bizoni</dc:creator>
      <pubDate>Mon, 18 May 2020 09:45:40 +0000</pubDate>
      <link>https://dev.to/luizabizoni/explorando-dados-financeiros-com-python-introducao-4f6b</link>
      <guid>https://dev.to/luizabizoni/explorando-dados-financeiros-com-python-introducao-4f6b</guid>
      <description>&lt;p&gt;Este é o primeiro post da série "Ciência de Dados aplicada a Finanças" e é uma introdução de como usar Python para análises financeiras.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que usar Python para análises financeiras?
&lt;/h2&gt;

&lt;p&gt;Python é uma linguagem fácil de aprender, se integra bem com outras linguagens e é open source, o que a torna acessível para quem quiser utilizá-la.&lt;/p&gt;

&lt;p&gt;No setor financeiro é usada em análises quantitativas para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compilar relatórios de vendas mensais;&lt;/li&gt;
&lt;li&gt;Otimizar performances de estratégias de investimento;&lt;/li&gt;
&lt;li&gt;Visualizar dados de tendências de ações.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se você quer aprender a programar em Python, sugiro que veja &lt;a href="https://www.youtube.com/playlist?list=PLHz_AreHm4dlKP6QQCekuIPky1CiwmdI6"&gt;esta playlist&lt;/a&gt; do professor Guanabara. São mais de 10h de curso em vídeo gratuito e em português. Aqui irei apresentar apenas alguns conceitos básicos para serem aplicados em análises de dados financeiros.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conhecendo a linguagem
&lt;/h2&gt;

&lt;p&gt;Podemos utilizar Python para realizar operações matemáticas comuns como adição, subtração, multiplicação, divisão, resto da divisão e potenciação.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Adição:
print(10 + 5)

#Subtração:
print(10 - 5)

#Multiplicação:
print(10 * 5)

#Divisão:
print(10 / 5)

#Módulo:
print(10 % 5)

#Potenciação:
print(10 ** 5)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Variáveis
&lt;/h3&gt;

&lt;p&gt;As variáveis são compostas de duas partes: o nome e o valor, e guardam informações que podem ser utilizadas posteriormente no código.&lt;/p&gt;

&lt;p&gt;O nome da variável pode conter letras maiúsculas e minúsculas, números e sublinhados, porém não pode iniciar com um número. Existem palavras que não devem ser usadas como nome de uma variável, pois definem as regras de sintaxe e estrutura da linguagem, estas são chamadas palavras reservadas.&lt;/p&gt;

&lt;p&gt;Para atribuir um valor a uma variável digite o nome da variável, o sinal de igual (=) e então atribua o valor da variável.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nome = "Luíza"
idade = 27
ama_chocolate_branco = True
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Tipos
&lt;/h3&gt;

&lt;p&gt;É possível atribuir tipos de dados às variáveis. São eles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;String: dado do tipo texto. Deve ser escrito entre aspas;&lt;/li&gt;
&lt;li&gt;Integer: dado do tipo número inteiro;&lt;/li&gt;
&lt;li&gt;Float: dado do tipo número real;&lt;/li&gt;
&lt;li&gt;Boolean: dado do tipo booleano. Pode receber True (verdadeiro) ou False (falso). Normalmente são o resultado de um teste condicional envolvendo operadores de comparação ou operadores lógicos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para identificar o tipo da variável  use:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;type(nome_da_variavel)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Listas
&lt;/h3&gt;

&lt;p&gt;Uma lista em python pode ser identificada quando vemos elementos separados por vírgula dentro de colchetes. Cada elemento em uma lista assume uma posição ordenada chamada &lt;em&gt;index&lt;/em&gt; que inicia em zero.&lt;/p&gt;

&lt;p&gt;Para acessar um elemento usamos um número inteiro que representa o index deste entre colchetes. Por exemplo, para acessar o segundo elemento de uma lista usamos [1], já que a contagem se inicia em zero:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Acessar o elemento "vermelho":

lista_cores = ["azul", "vermelho", "roxo", "amarelo", "verde"]
lista_cores[1]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Para acessar múltiplos elementos em uma lista, usamos o fatiamento. Para isso, dentro do colchete passamos o index inicial e o index final separados por ":", sendo que este não será exibido. Na lista do exemplo acima, para acessarmos os três elementos do meio fazemos:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Acessar "vermelho", "roxo", "amarelo":
lista_cores[1:4]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Podemos usar também o fatiamento estendido. Se precisamos acessar todos os elementos da posição x até o final da lista ou do início da lista até a posição x fazemos, respectivamente:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Acessar "roxo", "amarelo", "verde":
lista_cores[2:]

#Acessar "azul", "vermelho", "roxo", "amarelo":
lista_cores[:4]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Se for preciso saltar elementos, basta incluir um &lt;em&gt;step&lt;/em&gt; na sintaxe. O &lt;em&gt;step&lt;/em&gt; é um número inteiro que determina o incremento entre cada index. Usando ainda a lista de cores como exemplo:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Acessar "azul", "roxo", "verde"
lista_cores[::2]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Métodos e Funções
&lt;/h3&gt;

&lt;p&gt;Em Python, todo método é uma função, mas nem toda função é um método. A diferença entre eles é que uma função recebe um objeto, enquanto um método age sobre um objeto. Alguns exemplos de métodos são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;.append(): adiciona um único elemento a uma lista;&lt;/li&gt;
&lt;li&gt;.extend(): adiciona mais de um elemento a uma lista;&lt;/li&gt;
&lt;li&gt;.index(): retorna o índice do elemento. Se o elemento aparece mais de uma vez na lista, o retorno é o menor índice onde o elemento aparece;&lt;/li&gt;
&lt;li&gt;.min(): retorna o menor elemento de uma lista;&lt;/li&gt;
&lt;li&gt;.max(): retorna o maior elemento de uma lista.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Pacote
&lt;/h4&gt;

&lt;p&gt;É uma coleção de vários scripts ou módulos em python que introduzem novas funções, métodos e tipos de dados. Para instalar um pacote use "&lt;em&gt;pip install nome_do_pacote&lt;/em&gt;" e para importar o pacote para usar no código use "&lt;em&gt;import nome_do_pacote&lt;/em&gt;".&lt;/p&gt;
&lt;h3&gt;
  
  
  Matriz
&lt;/h3&gt;

&lt;p&gt;No pacote NumPy podemos criar novos tipos de dados chamados matrizes. Para criar uma matriz basta chamar a função "array()" que recebe uma lista como entrada. Para acessar a função usamos numpy.array().&lt;/p&gt;

&lt;p&gt;Podemos usar alias para tornar o código menos verboso. O alias possibilita a substituição de uma palavra por outra cadeia de caracteres e com isso é possível resumir o nome dos pacotes importados. Para isso fazemos, por exemplo:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import numpy as np
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Matrizes são mais compactas que uma lista, portanto são mais eficientes para lidar com conjuntos de dados muito grandes. Além de serem mais compactas, só guardam um tipo de dado, por isso, se forem atribuídos mais de um tipo de dado, o próprio NumPy irá converter automaticamente todos os elementos para o  tipo mais compatível.&lt;/p&gt;

&lt;p&gt;No caso das matrizes, ao usar o sinal de "+" a operação funciona diferente de quando usado em listas. Se fizermos lista_a + lista_b, as listas serão concatenadas, mas se fizermos  matriz_a + matriz_b os elementos da matriz são somados de acordo com seus &lt;em&gt;index&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Para acessar os elementos ou fazer fatiamento, a sintaxe é a mesma da utilizada em listas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Matriz 2D
&lt;/h3&gt;

&lt;p&gt;É uma lista de listas onde cada linha é representada por uma lista e cada coluna é representa pelos elementos.&lt;/p&gt;

&lt;h4&gt;
  
  
  Métodos aplicados a matrizes 2D
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;.shape: retorna as dimensões da matriz dentro de uma tupla com dois elementos, onde o primeiro número é o número de listas e o segundo o número de elementos em cada lista;&lt;/li&gt;
&lt;li&gt;.size: retorna a quantidade de elementos existentes na matriz.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Funções aplicadas a matrizes 2D
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;np.mean(nome_da_matriz): calcula a média da matriz;&lt;/li&gt;
&lt;li&gt;np.std(nome_da_matriz): calcula o desvio padrão da matriz;&lt;/li&gt;
&lt;li&gt;np.arrange(): cria uma matriz com início, fim e incremento;&lt;/li&gt;
&lt;li&gt;np.transpose(): inverte linhas e colunas da matriz NumPy.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Acessando &lt;em&gt;index&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;Usamos a mesma sintaxe da usada para acessar elementos em uma lista, mas precisamos passar o &lt;em&gt;index&lt;/em&gt; da linha e o &lt;em&gt;index&lt;/em&gt; da coluna onde está o elemento.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;matriz_alunos = [['Ana', 'Beto'],[26, 23],[1.63,1.79]]

#Acessar o segundo elemento da segunda lista da matriz
matriz_alunos[1,1]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4&gt;
  
  
  Fatiamento
&lt;/h4&gt;

&lt;p&gt;Assim como para acessar os elementos pelo &lt;em&gt;index&lt;/em&gt;, usamos a mesma sintaxe da usada para listas, mas precisamos passar o &lt;em&gt;index&lt;/em&gt; da linha e o &lt;em&gt;index&lt;/em&gt; da coluna.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Selecionar todas as linhas da terceira coluna:
matriz_alunos[:,2]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vs8FPq6U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jsiija2cwaxgcd9sdzxu.jpg" alt="Visualizando dados" width="600"&gt;&lt;/center&gt;
&lt;h2&gt;
  
  
  Visualizando dados com Python
&lt;/h2&gt;

&lt;p&gt;Quanto melhor estiver a visualização dos dados, maior será a possibilidade de obter informações valiosas deles. Além disso, visualizações são importantes para comunicar suas descobertas a outras pessoas.&lt;/p&gt;

&lt;p&gt;Veremos aqui a interface &lt;a href="https://matplotlib.org/3.2.1/api/_as_gen/matplotlib.pyplot.html"&gt;&lt;em&gt;PyPlot&lt;/em&gt;&lt;/a&gt; da biblioteca de visualização de dados &lt;em&gt;Matplotlib&lt;/em&gt;. Para importá-la usamos:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import matplotlib.pyplot as plt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Funções
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;plt.plot(): recebe argumentos que descrevem os dados a serem plotados e cria um gráfico de linha;&lt;/li&gt;
&lt;li&gt;plt.scatter(): cria um gráfico de dispersão;&lt;/li&gt;
&lt;li&gt;plt.show(): exibe o gráfico na tela;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Podemos fornecer mais argumentos à função plot() para personalizar o gráfico. Uma boa prática é fornecer o argumento "label" para dar nome aos eixos dos gráficos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;plt.xlable(): adiciona um título para o eixo x;&lt;/li&gt;
&lt;li&gt;plt.ylabel(): adiciona um título para o eixo y;&lt;/li&gt;
&lt;li&gt;plt.title(): adiciona um título para o seu gráfico.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Um exemplo seria:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import matplotlib.pyplot as plt

# Plotar preço em função do tempo
plt.plot(days, prices, clor='red', linestyle='--')

# Adicionar títulos dos eixos
plt.xlabel('Days')
plt.ylabel('Prices, $')

# Adicionar título do gráfico e plotar
plt.title('Company Stock Prices Over Time')
plt.show()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mcPw09Jl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qdj16ret0787m23jdphl.PNG" alt="Gráfico de linhas da variação dos preços das ações das companhias ao longo do tempo" width="600"&gt;&lt;/center&gt;
&lt;h4&gt;
  
  
  Histogramas:
&lt;/h4&gt;

&lt;p&gt;Ao plotar um histograma podemos visualizar com facilidade a distribuição dos dados. Em finanças, os histogramas são utilizados para visualizar indicadores econômicos, retornos de ações e preços de commodities, por exemplo. Para plotar usamos:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;plt.hist()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Vantagens&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visualizar o formato e distribuição dos dados (a distribuição é simétrica?);&lt;/li&gt;
&lt;li&gt;Visualizar se existe muita variabilidade nos dados (os dados estão centrados em torno da média?);&lt;/li&gt;
&lt;li&gt;Identificar pontos com grande afastamento dos demais (existem outliers?).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para saber a frequência relativa ou o percentual da observação ao invés da contagem de frequências, usamos o argumento "normed = 1".&lt;/p&gt;

&lt;p&gt;Para adicionar legendas ao histograma usamos o argumento labels na função hist() e para plotar as legendas usamos plt.legend(). Veja o exemplo abaixo:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Plotar os histogramas de stock_A e stock_B:
plt.hist(stock_A, bins=100, alpha=0.4, label='Stock A')
plt.hist(stock_B, bins=100, alpha=0.4, label='Stock B')

# Adicionar a legenda
plt.legend()

# Mostrar o gráfico
plt.show()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wu6YT7IQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/iympnv1dz4c3b8x3dril.PNG" alt="Histograma da variação dos preços das ações das companhias ao longo do tempo" width="600"&gt;&lt;/center&gt;

&lt;p&gt;Com isso já conseguimos fazer nossas primeiras análises de dados financeiros. Veja &lt;a href="https://dev.to/luizabizoni/s-p-100-estudo-de-caso-2oc1"&gt;aqui&lt;/a&gt; o estudo de caso do &lt;em&gt;S&amp;amp;P 100 Stock&lt;/em&gt; onde aplico o que aprendemos nesta leitura.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Este post foi escrito baseado em meu aprendizado com o curso "Introduction to Python for Finance" ministrado por Adina Howe disponível &lt;a href="https://campus.datacamp.com/courses/introduction-to-python-for-finance"&gt;neste link&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>datascience</category>
      <category>finance</category>
      <category>introducao</category>
    </item>
    <item>
      <title>COVID-19: Mantendo a produtividade e a sanidade em tempos de quarentena</title>
      <dc:creator>Luiza Bizoni</dc:creator>
      <pubDate>Sun, 17 May 2020 13:31:28 +0000</pubDate>
      <link>https://dev.to/luizabizoni/covid-19-mantendo-a-produtividade-e-a-sanidade-em-tempos-de-quarentena-14cf</link>
      <guid>https://dev.to/luizabizoni/covid-19-mantendo-a-produtividade-e-a-sanidade-em-tempos-de-quarentena-14cf</guid>
      <description>&lt;p&gt;Estamos enfrentando "mares nunca dantes navegados" com a chegada do Coronavírus ao Brasil (tenho usado &lt;a href="https://t.me/s/corona_atila"&gt;este canal&lt;/a&gt; para me manter informada). Como a experiência é nova para muitas de nós, vim trazer algumas dicas para sermos mais produtivas e mantermos a saúde física e mental em dia enquanto estivermos em isolamento.&lt;/p&gt;

&lt;h2&gt;
  
  
  Crie uma rotina
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Home office
&lt;/h3&gt;

&lt;p&gt;Tenha seu próprio "ritual" &lt;strong&gt;matinal&lt;/strong&gt;: acorde mais cedo, se exercite, medite, leia ou ouça noticias (eu ouço o "&lt;a href="https://cbn.globoradio.globo.com/programas/cbn-primeiras-noticias/CBN-PRIMEIRAS-NOTICIAS.htm"&gt;Primeiras Notícias&lt;/a&gt;" da CBN e o "&lt;a href="https://www1.folha.uol.com.br/especial/2019/cafe-da-manha/"&gt;Café da Manhã&lt;/a&gt;" da Folha de São Paulo, ambos disponíveis no &lt;em&gt;Spotify&lt;/em&gt;), durma um pouco mais, tome um bom banho. Veja o que funciona melhor para você, teste e adapte.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Se alimente durante todo o dia&lt;/strong&gt;: não pule as refeições porque está "muito ocupada agora" ou porque "só falta terminar uma coisa". Tome um bom café da manhã antes de começar a trabalhar, almoce, tome lanches nos intervalos. Ah, e nada de comer na frente do computador. Esse é um momento para você descansar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Organize-se antes de começar a trabalhar&lt;/strong&gt;: limpe a mesa, use uma cadeira confortável e com boa ergonomia, deixe todo o material que irá precisar à mão e veja quais tarefas você tem programadas para o dia. Recomendo usar o &lt;a href="https://asana.com/pt"&gt;Asana&lt;/a&gt; para planejar e organizar suas tarefas. Além de ser gratuito e intuitivo de usar, ele tem um unicórnio que voa pela sua tela quando você concluí uma tarefa!&lt;/p&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bqXHzZtg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AWxKKIl92LV53hhxtoPVJ2g.gif" alt="Asana - para planejar e organizar suas tarefas" width="600"&gt;&lt;/center&gt;

&lt;p&gt;&lt;strong&gt;Evite distrações&lt;/strong&gt;: Deixe o celular com a tela virada para baixo, no computador mantenha aberto apenas o que precisa para fazer a atividade, coloque uma musica tranquila para tocar e volte sua atenção unicamente para realizar a tarefa.&lt;/p&gt;

&lt;p&gt;Existem diversos métodos de gestão de tempo que você pode usar para ajudar a se concentrar, eu uso a técnica &lt;a href="https://brasilescola.uol.com.br/dicas-de-estudo/tecnica-pomodoro-que-e-e-como-funciona.htm"&gt;Pomodoro&lt;/a&gt;, porém com adaptações. O que tem funcionado para mim é fazer ciclos 50–10, ou seja, durante 50 minutos eu trabalho 100% focada e quando acaba este tempo me desconecto por 10 minutos. Para cronometrar o tempo uso o app &lt;a href="https://tide.fm/en_US/"&gt;Tide&lt;/a&gt; que tem uma interface própria para esse método.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Faça pequenas pausas de tempos em tempos&lt;/strong&gt;: Nas suas pausas, levante-se, beba água, vá ao banheiro, estique o corpo, veja suas redes sociais, tome um sol, vá até a janela tomar um ar e reparar na sua vizinhança. Esse tempo para se desligar do trabalho é muito importante também para sua sanidade.&lt;/p&gt;


&lt;center&gt;&lt;img src="https://i.giphy.com/media/1lxSKsd0xpxbhBolH9/giphy.gif" width="480"&gt;&lt;/center&gt;

&lt;p&gt;Acabou o horário de trabalho, mas o dia ainda não.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quebre a rotina
&lt;/h2&gt;

&lt;p&gt;Depois de finalizar sua jornada de trabalho, divirta-se.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Faça chamadas de vídeo&lt;/strong&gt;: isolamento não é solidão. Converse com sua família e amigos, não só por texto, mas por vídeo também. É importante manter esse contato visual.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Viaje&lt;/strong&gt;: Não, não é pra ir passear na Itália. Leia um livro, ouça podcasts e audiobooks. Eles podem te levar para lugares que você jamais imaginou poder ir, lugares que nem existem na vida real!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aprenda algo novo&lt;/strong&gt;: sabe as horas que você gastava para ir e voltar para o trabalho? Use para fazer aquele curso que está adiando há tempos. Você pode aprender idiomas com o &lt;a href="https://pt.duolingo.com/"&gt;Duolingo&lt;/a&gt;, fazer receitas, programar, tocar um instrumento no &lt;a href="https://www.cifraclub.com.br/aprenda/"&gt;CifraClub&lt;/a&gt;, e mais uma infinidade de coisas. As girls da &lt;a href="https://www.linkedin.com/company/girls-support-girls/"&gt;GSG Community&lt;/a&gt; indicaram diversas coisas para fazer &lt;a href="https://www.linkedin.com/posts/girls-support-girls_covid19-skills-quarentena-activity-6646867526951190529-pWuM/"&gt;aqui neste link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Por fim, cuide-se. Além de se alimentar bem, se hidratar e se exercitar, faça aquele spa caseiro com máscara de argila, creme no cabelo, esfoliação nos pezinhos, hidratante no corpo. Se ame, aproveite e tire esse tempo para você!&lt;/p&gt;



&lt;center&gt;&lt;img src="https://i.giphy.com/media/MvZKiDJmB1XEs/giphy.gif" width="480"&gt;&lt;/center&gt;

</description>
      <category>quarentena</category>
      <category>produtividade</category>
      <category>saudemental</category>
      <category>homeoffice</category>
    </item>
    <item>
      <title>Cientista vs. Engenheira de Dados, qual carreira escolher?</title>
      <dc:creator>Luiza Bizoni</dc:creator>
      <pubDate>Sun, 17 May 2020 12:56:37 +0000</pubDate>
      <link>https://dev.to/luizabizoni/cientista-vs-engenheira-de-dados-qual-carreira-escolher-pbi</link>
      <guid>https://dev.to/luizabizoni/cientista-vs-engenheira-de-dados-qual-carreira-escolher-pbi</guid>
      <description>&lt;p&gt;Você começou a ler sobre &lt;strong&gt;Data Science&lt;/strong&gt; e a área tem feito seus olhinhos brilharem, mas ainda não sabe qual profissão seguir?&lt;/p&gt;

&lt;p&gt;Vem cá que eu te ajudo a entender a diferença entre o que faz uma &lt;strong&gt;Cientista&lt;/strong&gt; e uma &lt;strong&gt;Engenheira&lt;/strong&gt; de Dados. Assim fica mais fácil escolher um caminho para focar nos estudos na área que mais gostar! Bora?!&lt;/p&gt;

&lt;h2&gt;
  
  
  Dados, dados e mais dados
&lt;/h2&gt;

&lt;p&gt;A última década que vivemos trouxe uma &lt;strong&gt;explosão de dados&lt;/strong&gt;. Quase tudo o que fazemos no dia-a-dia se converte em dados: desde o nosso comportamento em um &lt;em&gt;e-commerce&lt;/em&gt; às maratonas no &lt;em&gt;Netflix&lt;/em&gt;, passando pelos &lt;em&gt;tweets&lt;/em&gt;, transações usando &lt;em&gt;Nubank&lt;/em&gt; e os passeios de &lt;em&gt;Uber&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;E junto a essa quantidade gigantesca de informações, que cresce exponencialmente, vem a necessidade de &lt;strong&gt;profissionais&lt;/strong&gt; que sejam capazes de extrair, organizar, analisar e entregar valor a partir desses dados. Isso, junto às tecnologias que surgiram recentemente, tem levado à atualização de carreiras existentes e à criação de outras.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Science Team
&lt;/h2&gt;

&lt;p&gt;Um time de Data Science normalmente é composto por profissionais das áreas de ciência de dados, engenharia de dados, estatística e engenharia de software. Mas vamos focar nas duas primeiras.&lt;/p&gt;

&lt;p&gt;Frequentemente você vai se deparar com descrições de vagas de emprego que &lt;strong&gt;misturam&lt;/strong&gt; ou &lt;strong&gt;confundem&lt;/strong&gt; as funções e habilidades de cientistas de dados e engenheiras de dados. Apesar de as profissões estarem intimamente ligadas a dados, há diferenças entre o trabalho que desempenham e é isso que vamos ver a seguir.&lt;/p&gt;


&lt;center&gt;&lt;img src="https://i.giphy.com/media/CjmvTCZf2U3p09Cn0h/giphy.gif" width="480" alt="Estou pronta"&gt;&lt;/center&gt;
&lt;h3&gt;
  
  
  Engenheira de dados
&lt;/h3&gt;

&lt;p&gt;Uma engenheira de dados é uma &lt;strong&gt;engenheira hardcore&lt;/strong&gt; que ama brincar com bases de dados e sistemas de processamento em larga escala. É responsável por criar o &lt;strong&gt;pipeline&lt;/strong&gt; dos dados, desde a coleta até a entrega destes de forma organizada e limpa para serem utilizados pelas cientistas de dados.&lt;/p&gt;

&lt;p&gt;As engenheiras de dados desenvolvem, constroem, testam e dão manutenção em arquiteturas, como os sistemas de processamento de dados em larga escala citados acima.&lt;/p&gt;

&lt;p&gt;É necessário que você tenha conhecimentos sólidos de &lt;strong&gt;SQL&lt;/strong&gt; (“Structured Query Language”, ou “Linguagem de Consulta Estruturada”, em pt-br. É uma linguagem de programação para trabalhar com banco de dados estruturados.) e &lt;strong&gt;NoSQL&lt;/strong&gt; (banco de dados não relacionais.), técnicas de &lt;strong&gt;modelagem de dados&lt;/strong&gt; e &lt;strong&gt;ETL&lt;/strong&gt; ("extract, transform, load": extrair os dados "crus", transforma-los em conjuntos de dados organizados e carregar esses dados em um repositório tendo certeza de que o processo será o mais eficiente possível.).&lt;/p&gt;

&lt;p&gt;Além disso, é preciso se manter atualizada nas ferramentas, bibliotecas, plataformas e outros recursos disponíveis, para que possa tomar a melhor decisão sobre quais tecnologias usar e como entregar o melhor com aquilo que se tem acesso e dominar arquiteturas de microsserviços e segurança de dados.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cientista de Dados
&lt;/h3&gt;

&lt;p&gt;As cientistas de dados são &lt;strong&gt;fadas&lt;/strong&gt; que transformam os dados extraídos pelas maravilhosas engenheiras em &lt;strong&gt;soluções&lt;/strong&gt; para os mais diversos desafios. Para isso precisam limpar, tratar, organizar os dados e aplicar suas capacidades analíticas para criar modelos preditivos.&lt;/p&gt;

&lt;p&gt;Uma cientista de dados utiliza seus conhecimentos em matemática, estatística, programação, computação distribuída e inteligência artificial para levantar insights e suas habilidades em apresentar visualmente os dados para relatar esses insights às partes interessadas.&lt;/p&gt;

&lt;p&gt;Se o trabalho das engenheiras de dados é baseado em ETL, o das cientistas é baseado em &lt;strong&gt;DAP&lt;/strong&gt; ("discover, access, predict", ou "descobrir, acessar e predizer" em pt-br), que seria explorar e identificar fontes de dados e suas métricas, acessar e investigar esses dados e com base em análises estatísticas, apresentar insights com ações a serem tomadas em forma de gráficos e tabelas para melhor visualização.&lt;/p&gt;

&lt;p&gt;Uma analogia interessante usada por Vik Paruchuri no seu artigo "&lt;a href="https://www.dataquest.io/blog/what-is-a-data-engineer/"&gt;What is a Data Engineer?&lt;/a&gt;" (em tradução livre) é comparar uma engenheira de automóvel e uma pilota de carros de corrida: a pilota sente a emoção da alta velocidade e a vibração do público que foi assistir à corrida, já a engenheira que projetou aquele carro sente o prazer de ajustar os motores, experimentar diferentes escapamentos, e criar máquinas fodas.&lt;/p&gt;

&lt;p&gt;Então, se você gosta de &lt;strong&gt;projetar&lt;/strong&gt; e &lt;strong&gt;construir&lt;/strong&gt; algo de valor para ser usado pelo time, o caminho da engenharia de dados é o ideal para você, mas se você prefere &lt;strong&gt;investigar&lt;/strong&gt; e &lt;strong&gt;apresentar&lt;/strong&gt; algo de valor para ser usado pela ponta, o caminho é o da ciência de dados.&lt;/p&gt;


&lt;center&gt;&lt;img src="https://i.giphy.com/media/Vhu0WVzU9kLyqDa6TW/giphy.gif" width="480" alt="Não consigo escolher um favorito"&gt;&lt;/center&gt;

&lt;p&gt;Se você está começando agora, minha dica é: inicie os estudos por &lt;strong&gt;python&lt;/strong&gt; e &lt;strong&gt;SQL&lt;/strong&gt;, pois serão úteis para ambas carreiras e você poderá amadurecer sua decisão e seguir pelo caminho que mais te agradar!&lt;/p&gt;

</description>
      <category>cienciadedados</category>
      <category>engenhariadedados</category>
      <category>datascience</category>
      <category>carreira</category>
    </item>
  </channel>
</rss>
