Executando verificação de segurança...
2

[DATA SCIENCE] DAY: 016 - Visualizando séries temporais

👨‍💼 Bom dia, boa tarde e boa noite pessoal, tudo bem?

🐍 Hoje iremos aprender como visualizar séries temporais.

As séries temporais são importantes na ciência de dados porque permitem entender como os dados variam ao longo do tempo. Isso é útil em muitas áreas, como finanças, meteorologia e saúde, para prever tendências futuras e tomar decisões informadas. As técnicas de análise de séries temporais, como a decomposição e a previsão, são amplamente utilizadas para analisar esses dados.

📝 Obs: Irei utilizar o jupyter notebook, mas fique a vontade para escolher outro ambiente de sua preferência. Uma sugestão caso não conheça nenhum, tem o colab do google.

1 - Primeiro, podemos usar a notação as para abreviar o nome das bibliotecas que vamos importar e facilitar a escrita de código:

💻

import pandas as pd

from matplotlib import pyplot as plt
from matplotlib import rcParams

import seaborn as sns

📝 Obs:

  • A primeira linha import pandas as pd importa a biblioteca pandas para utilizar suas funções para manipular e analisar dados.
  • A segunda linha from matplotlib import pyplot as plt importa o módulo pyplot da biblioteca matplotlib para criar gráficos.
  • A terceira linha from matplotlib import rcParams importa as configurações de parâmetros padrão da biblioteca matplotlib.
  • A quarta linha import seaborn as sns importa a biblioteca seaborn que fornece uma interface mais fácil para criar gráficos estatísticos atraentes e informativos, e também estende as funcionalidades de matplotlib.

Essas linhas de código preparam as bibliotecas necessárias para serem utilizadas na visualização de dados.

2 - Agora vamos ajustar as configurações de visualização para se adequar ao ambiente do Jupyter Notebook e estabelecer um estilo de gráfico padrão para ser usado ao longo do código:

💻

%matplotlib inline
rcParams['figure.figsize'] = 5, 4
sns.set_style('whitegrid')

📝 Obs:

  • %matplotlib inline: Essa linha de código é usada para exibir gráficos dentro do notebook Jupyter. Isso significa que, em vez de abrir uma nova janela para exibir o gráfico, ele será exibido diretamente no notebook.

  • rcParams['figure.figsize'] = 5, 4: Essa linha de código define o tamanho da figura como 5x4. Isso significa que a largura será de 5 unidades e a altura será de 4 unidades.

  • sns.set_style('whitegrid'): Essa linha de código é parte do seaborn, uma biblioteca de visualização de dados baseada em Matplotlib. Ele define o estilo de grade como branco. Isso adiciona linhas brancas às suas visualizações de dados, o que pode ajudar a tornar os gráficos mais legíveis e fáceis de interpretar.

3 - Após ter feito as configurações iniciais, vamos ler arquivo CSV chamado "Superstore-Sales.csv" e importar os dados para um Dataframe:

🔍 Para baixar o arquivo que está sendo usado, clique aqui.

caminho = 'O-caminho-do-seu-arquivo/Superstore-Sales.csv'
df = pd.read_csv(caminho, index_col='Order Date', parse_dates=True, 
                 encoding='ISO-8859-1')
df.head(3)

📝 Obs: O que esse código faz???

  • Definindo caminho para o arquivo: A primeira linha define uma variável chamada caminho que contém o caminho para o arquivo CSV Superstore-Sales.csv que está localizado no desktop do usuário na pasta roteiros/dados.
  • Lendo arquivo CSV: A segunda linha utiliza a biblioteca pandas para ler o arquivo CSV especificado na variável caminho e armazena os dados em um dataframe chamado df.
  • Indexando o Dataframe: A terceira linha define a coluna Order Date como o índice do dataframe df e converte essas entradas para objetos de data e hora.
  • Codificação do arquivo: A quarta linha especifica a codificação do arquivo como ISO-8859-1.
  • Visualização dos dados: A quinta linha utiliza o método head() para visualizar as primeiras 3 linhas do dataframe df.

Saída dos dados:

Order DateRow IDOrder IDOrder PriorityOrder QuantitySalesDiscountShip ModeProfitUnit PriceShipping CostCustomer NameProvinceRegionCustomer SegmentProduct CategoryProduct Sub-CategoryProduct NameProduct ContainerProduct Base MarginShip Date
2010-10-13 00:00:0013Low6261.540.04Regular Air-213.2538.9435.0Muhammed MacIntyreNunavutNunavutSmall BusinessOffice SuppliesStorage & OrganizationEldon Base for stackable storage shelf, platinumLarge Box0.810/20/2010
2012-10-01 00:00:0049293High4910123.020.07Delivery Truck457.81208.1668.02Barry FrenchNunavutNunavutConsumerOffice SuppliesAppliances1.7 Cubic Foot Compact "Cube" Office RefrigeratorsJumbo Drum0.5810/2/2012
2012-10-01 00:00:0050293High27244.570.01Regular Air46.718.692.99Barry FrenchNunavutNunavutConsumerOffice SuppliesBinders and Binder AccessoriesCardinal Slant-D® Ring Binder, Heavy Gauge VinylSmall Box0.3910/3/2012

4 - Agora vamos utilizar o método plot() para plotar os dados da coluna Order Quantity do dataframe df. Isso gera um gráfico de linha mostrando como a quantidade de pedidos varia ao longo do tempo. Este gráfico pode ajudar a visualizar tendências e padrões nos dados de quantidade de pedidos:

df['Order Quantity'].plot()

📝 Obs: O que esse código faz???

  • Acessando coluna específica do Dataframe: Essa linha de código acessa a coluna "Order Quantity" do dataframe df usando notação de colchetes []
  • Plotando gráfico: Utiliza o método plot() para plotar os dados da coluna Order Quantity acessada anteriormente.
  • Visualizando tendências e padrões: O gráfico gerado mostra como a quantidade de pedidos varia ao longo do tempo, o que pode ajudar a visualizar tendências e padrões nos dados de quantidade de pedidos.

Gráfico gerado:
Gráfico gerado so código acima

5 - Por último, vamos plotar um gráfico de linha com os dados de quantidade de pedidos de uma amostra aleatória com o objetivo de visualizar as tendências e padrões dos dados de quantidade de pedidos:

df2 = df.sample(n=100, random_state=25, axis=0)

plt.xlabel('Order Date')
plt.ylabel('Order Quantity')
plt.title('Superstore Sales')

df2['Order Quantity'].plot()

📝 Obs: O que esse código faz???

  • Amostrando dados: A primeira linha do código cria uma nova variável chamada df2 que contém uma amostra aleatória de 100 linhas do dataframe df. O argumento random_state é usado para garantir que a mesma amostra seja selecionada cada vez que o código é executado.
  • Configurando gráfico: As próximas três linhas usam o módulo plt da biblioteca matplotlib para rotular o eixo x como Order Date, o eixo y como Order Quantity e definir o título do gráfico como Superstore Sales.
  • Plotando gráfico: A última linha usa o método plot() para plotar os dados da coluna Order Quantity da amostra df2 gerada anteriormente.

Gráfico gerado:
Gráfico gerado so código acima

🌊 Espero que tenham gostado do conteúdo, amanhã iremos aprender como criar histogramas!

🚀 Vejo vocês amanhã, tenham uma ótima semana!

Data Science

Carregando publicação patrocinada...
1

Bacana essa serie! não tinha visto outros posts e vou acompanhar.

Uma duvida: não seria melhor usar o Orange para essa tarefa? Acho que ele faria muito melhor que PY nesse caso não?

3

Bom dia Suelio,

O Orange é muito bom para análise exploratória mesmo, porém depois que você termina a sua análise, é melhor colocar os insights e caminhos no Py para poder um caminho de análise comum em projetos futuros e reproducibilidade.

1

Bom dia Suelio! Que bom que curtiu, fico contente com isso. Sobre o Orange, ainda não conheço muito bem, mas como mencionou, vou tentar trazer alguma coisa relacionado ao assunto.

2

O Orange é uma ferramenta muito bacana. Acho que vale você usar esse mesmo exmplo nele e ver se realmente ele é poderoso. No final ele usa PY, mas acho que a escalabilidade é bem maior por ser voltado para isso