Projeto: Análise Exploratória de Dados em Linguagem Python Para a Área de Varejo¶

In [1]:
#Imports
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import datetime as dt
In [2]:
#Carregando os Dados
df_dsa = pd.read_csv('dados/dataset.csv')
df_dsa.shape
Out[2]:
(9700, 11)
In [3]:
df_dsa.head()
Out[3]:
ID_Pedido Data_Pedido ID_Cliente Segmento Pais Cidade Estado ID_Produto Categoria SubCategoria Valor_Venda
0 CA-2017-152156 08/11/2017 CG-12520 Consumer United States Henderson Kentucky FUR-BO-10001798 Furniture Bookcases 261.9600
1 CA-2017-152156 08/11/2017 CG-12520 Consumer United States Henderson Kentucky FUR-CH-10000454 Furniture Chairs 731.9400
2 CA-2017-138688 12/06/2017 DV-13045 Corporate United States Los Angeles California OFF-LA-10000240 Office Supplies Labels 14.6200
3 US-2016-108966 11/10/2016 SO-20335 Consumer United States Fort Lauderdale Florida FUR-TA-10000577 Furniture Tables 957.5775
4 US-2016-108966 11/10/2016 SO-20335 Consumer United States Fort Lauderdale Florida OFF-ST-10000760 Office Supplies Storage 22.3680
In [4]:
df_dsa.tail()
Out[4]:
ID_Pedido Data_Pedido ID_Cliente Segmento Pais Cidade Estado ID_Produto Categoria SubCategoria Valor_Venda
9695 CA-2018-154116 15/12/2018 KM-16660 Consumer United States Inglewood California OFF-PA-10004569 Office Supplies Paper 22.830
9696 CA-2018-154116 15/12/2018 KM-16660 Consumer United States Inglewood California OFF-AP-10000027 Office Supplies Appliances 54.320
9697 CA-2018-154116 15/12/2018 KM-16660 Consumer United States Inglewood California TEC-PH-10000675 Technology Phones 196.776
9698 CA-2017-105291 30/10/2017 SP-20920 Consumer United States San Luis Obispo California OFF-FA-10003059 Office Supplies Fasteners 3.620
9699 CA-2018-147032 31/07/2018 LB-16795 Home Office United States Wilmington Delaware OFF-PA-10003256 Office Supplies Paper 11.540

Análise Exploratória¶

In [5]:
# Colunas do conjunto de dados
df_dsa.columns
Out[5]:
Index(['ID_Pedido', 'Data_Pedido', 'ID_Cliente', 'Segmento', 'Pais', 'Cidade',
       'Estado', 'ID_Produto', 'Categoria', 'SubCategoria', 'Valor_Venda'],
      dtype='object')
In [6]:
# Verificando o tipo de dado de cada coluna
df_dsa.dtypes
Out[6]:
ID_Pedido        object
Data_Pedido      object
ID_Cliente       object
Segmento         object
Pais             object
Cidade           object
Estado           object
ID_Produto       object
Categoria        object
SubCategoria     object
Valor_Venda     float64
dtype: object
In [7]:
# Resumo estatístico da coluna com o valor de venda
df_dsa['Valor_Venda'].describe()
Out[7]:
count     9700.000000
mean       230.469892
std        627.504252
min          0.444000
25%         17.248000
50%         54.272000
75%        209.932500
max      22638.480000
Name: Valor_Venda, dtype: float64
In [8]:
# Verificando se há registros duplicados
df_dsa[df_dsa.duplicated()]
Out[8]:
ID_Pedido Data_Pedido ID_Cliente Segmento Pais Cidade Estado ID_Produto Categoria SubCategoria Valor_Venda
In [9]:
# Verificando de há valores ausentes
df_dsa.isnull().sum()
Out[9]:
ID_Pedido       0
Data_Pedido     0
ID_Cliente      0
Segmento        0
Pais            0
Cidade          0
Estado          0
ID_Produto      0
Categoria       0
SubCategoria    0
Valor_Venda     0
dtype: int64
In [10]:
df_dsa.head()
Out[10]:
ID_Pedido Data_Pedido ID_Cliente Segmento Pais Cidade Estado ID_Produto Categoria SubCategoria Valor_Venda
0 CA-2017-152156 08/11/2017 CG-12520 Consumer United States Henderson Kentucky FUR-BO-10001798 Furniture Bookcases 261.9600
1 CA-2017-152156 08/11/2017 CG-12520 Consumer United States Henderson Kentucky FUR-CH-10000454 Furniture Chairs 731.9400
2 CA-2017-138688 12/06/2017 DV-13045 Corporate United States Los Angeles California OFF-LA-10000240 Office Supplies Labels 14.6200
3 US-2016-108966 11/10/2016 SO-20335 Consumer United States Fort Lauderdale Florida FUR-TA-10000577 Furniture Tables 957.5775
4 US-2016-108966 11/10/2016 SO-20335 Consumer United States Fort Lauderdale Florida OFF-ST-10000760 Office Supplies Storage 22.3680

Pergunta de Negócio 1:¶

Qual Cidade com Maior Valor de Venda de Produtos da Categoria 'Office Supplies'?¶

In [11]:
df_dsa_p1= df_dsa[df_dsa['Categoria'] == 'Office Supplies']
df_dsa_p1_total = df_dsa_p1.groupby('Cidade')['Valor_Venda'].sum()
cidade_maior_venda = df_dsa_p1_total.idxmax()
print("A cidade com maior valor de venda para a categoria 'Office Supplies' é:", cidade_maior_venda,'com: ', df_dsa_p1_total.max(),'em vendas!')
A cidade com maior valor de venda para a categoria 'Office Supplies' é: New York City com:  68362.814 em vendas!

Pergunta de Negócio 2:¶

Qual o Total de Vendas Por Data do Pedido?¶

Demonstre o resultado através de um gráfico.

In [12]:
df_dsa_p2 = df_dsa.groupby('Data_Pedido')['Valor_Venda'].sum()
print(df_dsa_p2)

#Plot
plt.figure(figsize = (20, 5))
df_dsa_p2.plot(x = 'Data_Pedido', y = 'Valor_Venda', color = 'blue')
plt.title('Total de Vendas Por Data do Pedido')
plt.show()
Data_Pedido
01/01/2018    1481.8280
01/02/2015     468.9000
01/02/2017     161.9700
01/03/2015    2203.1510
01/03/2016    1642.1744
                ...    
31/10/2017    2346.5790
31/10/2018     523.9280
31/12/2015    5253.2700
31/12/2016    1381.3440
31/12/2017     731.7680
Name: Valor_Venda, Length: 1226, dtype: float64
No description has been provided for this image

Pergunta de Negócio 3:¶

Qual o Total de Vendas por Estado?¶

Demonstre o resultado através de um gráfico.

In [13]:
df_dsa_p3 = df_dsa.groupby('Estado')['Valor_Venda'].sum().reset_index()
print(df_dsa_p3)

#Plot
plt.figure(figsize = (20, 6)) 
sns.barplot(data = df_dsa_p3, y = 'Valor_Venda', x = 'Estado').set(title = 'Vendas Por Estado') 
plt.xticks(rotation = 80) 
plt.show()
                  Estado  Valor_Venda
0                Alabama   19510.6400
1                Arizona   35272.6570
2               Arkansas   11673.8300
3             California  442927.0975
4               Colorado   31841.5980
5            Connecticut   13366.7370
6               Delaware   26452.5890
7   District of Columbia    2865.0200
8                Florida   88043.7000
9                Georgia   48083.1600
10                 Idaho    4292.5160
11              Illinois   78109.9270
12               Indiana   48718.4000
13                  Iowa    4443.5600
14                Kansas    2914.3100
15              Kentucky   36409.5800
16             Louisiana    9131.0500
17                 Maine    1270.5300
18              Maryland   23705.5230
19         Massachusetts   27363.2640
20              Michigan   76081.1740
21             Minnesota   29863.1500
22           Mississippi   10771.3400
23              Missouri   22205.1500
24               Montana    5589.3520
25              Nebraska    7194.9500
26                Nevada   16729.1020
27         New Hampshire    7132.5440
28            New Jersey   34265.7120
29            New Mexico    4783.5220
30              New York  304536.4010
31        North Carolina   55165.9640
32          North Dakota     919.9100
33                  Ohio   74277.8020
34              Oklahoma   19683.3900
35                Oregon   17284.4620
36          Pennsylvania  114411.6800
37          Rhode Island   22525.0260
38        South Carolina    8481.7100
39          South Dakota    1315.5600
40             Tennessee   30661.8730
41                 Texas  163549.8602
42                  Utah   11220.0560
43               Vermont    4524.4700
44              Virginia   68194.6700
45            Washington  133826.0060
46         West Virginia    1209.8240
47             Wisconsin   31154.4700
48               Wyoming    1603.1360
No description has been provided for this image

Pergunta de Negócio 4:¶

Quais São as 10 Cidades com Maior Total de Vendas?¶

Demonstre o resultado através de um gráfico.

In [42]:
df_dsa_p4 = df_dsa.groupby('Cidade')['Valor_Venda'].sum().reset_index().sort_values('Valor_Venda', ascending=False).head(10)
print(df_dsa_p4)

plt.figure(figsize = (10, 3)) 
sns.barplot(data = df_dsa_p4, y = 'Valor_Venda', x = 'Cidade').set(title = 'TOP 10 Cidades com Maior Total em Vendas') 
plt.xticks(rotation = 25) 
plt.show()
            Cidade  Valor_Venda
327  New York City  251749.2190
265    Los Angeles  171654.6330
450        Seattle  114725.4780
436  San Francisco  107489.9520
372   Philadelphia  107197.8030
207        Houston   61590.1868
435      San Diego   47458.3790
80         Chicago   46974.3430
216   Jacksonville   44713.1830
123        Detroit   42446.9440
No description has been provided for this image

Pergunta de Negócio 5:¶

Qual Segmento Teve o Maior Total de Vendas?¶

Demonstre o resultado através de um gráfico

In [15]:
# Agrupar e preparar os dados
dados = df_dsa.groupby('Segmento')['Valor_Venda'].sum().reset_index().set_index('Segmento')

# Plot
dados.plot(kind='pie',y='Valor_Venda',figsize=(4,5),legend=False, title='Segmentos com Maior Valor de Vendas', autopct=lambda p: f'{int(p * dados["Valor_Venda"].sum() / 100):,}')# mostra valor absoluto
plt.ylabel("")
plt.show()

#Comprovando os valores
df_dsa_p5 = df_dsa.groupby('Segmento')['Valor_Venda'].sum().reset_index().sort_values('Valor_Venda', ascending=False).head()
print(df_dsa_p5)
No description has been provided for this image
      Segmento   Valor_Venda
0     Consumer  1.133834e+06
1    Corporate  6.792322e+05
2  Home Office  4.224914e+05

Pergunta de Negócio 6 (Desafio Nível Baby):¶

Qual o Total de Vendas Por Segmento e Por Ano?¶

Demonstre o resultado através de um gráfico

In [43]:
# Qual o Total de Vendas Por Segmento e Por ano?
df_dsa['Ano'] = pd.DatetimeIndex(df_dsa['Data_Pedido']).year
df_dsa_p6 = df_dsa.groupby(['Segmento', 'Ano'])['Valor_Venda'].sum().reset_index()
print(df_dsa_p6)

# Plot
plt.figure(figsize = (10, 5))
sns.barplot(data = df_dsa_p6, x = 'Segmento', y = 'Valor_Venda', hue = 'Ano').set(title = 'Total de Vendas Por Ano e Por Segmento')
plt.show()
       Segmento   Ano  Valor_Venda
0      Consumer  2015  256719.9166
1      Consumer  2016  265295.2593
2      Consumer  2017  288459.5572
3      Consumer  2018  323359.6019
4     Corporate  2015  125819.5957
5     Corporate  2016  114643.1229
6     Corporate  2017  203266.7398
7     Corporate  2018  235502.7284
8   Home Office  2015   88229.0878
9   Home Office  2016   74134.1332
10  Home Office  2017  103639.6270
11  Home Office  2018  156488.5849
No description has been provided for this image

Pergunta de Negócio 7 (Desafio Nível Júnior):¶

Os gestores da empresa estão considerando conceder diferentes faixas de descontos e gostariam de fazer uma simulação com base na regra abaixo:

  • Se o Valor_Venda for maior que 1000 recebe 15% de desconto.
  • Se o Valor_Venda for menor que 1000 recebe 10% de desconto.

Quantas Vendas Receberiam 15% de Desconto?¶

In [83]:
# Se o valor da venda for maior que 1000, recebe 15% de desconto, caso contrário, receba um desconto de 10%:
df_dsa['Desconto'] = np.where(df_dsa['Valor_Venda'] > 1000, 0.15, 0.10)
df_dsa
Out[83]:
ID_Pedido Data_Pedido ID_Cliente Segmento Pais Cidade Estado ID_Produto Categoria SubCategoria Valor_Venda Ano Desconto Valor_Venda_Liquido
0 CA-2017-152156 08/11/2017 CG-12520 Consumer United States Henderson Kentucky FUR-BO-10001798 Furniture Bookcases 261.9600 2017 0.1 235.76400
1 CA-2017-152156 08/11/2017 CG-12520 Consumer United States Henderson Kentucky FUR-CH-10000454 Furniture Chairs 731.9400 2017 0.1 658.74600
2 CA-2017-138688 12/06/2017 DV-13045 Corporate United States Los Angeles California OFF-LA-10000240 Office Supplies Labels 14.6200 2017 0.1 13.15800
3 US-2016-108966 11/10/2016 SO-20335 Consumer United States Fort Lauderdale Florida FUR-TA-10000577 Furniture Tables 957.5775 2016 0.1 861.81975
4 US-2016-108966 11/10/2016 SO-20335 Consumer United States Fort Lauderdale Florida OFF-ST-10000760 Office Supplies Storage 22.3680 2016 0.1 20.13120
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
9695 CA-2018-154116 15/12/2018 KM-16660 Consumer United States Inglewood California OFF-PA-10004569 Office Supplies Paper 22.8300 2018 0.1 20.54700
9696 CA-2018-154116 15/12/2018 KM-16660 Consumer United States Inglewood California OFF-AP-10000027 Office Supplies Appliances 54.3200 2018 0.1 48.88800
9697 CA-2018-154116 15/12/2018 KM-16660 Consumer United States Inglewood California TEC-PH-10000675 Technology Phones 196.7760 2018 0.1 177.09840
9698 CA-2017-105291 30/10/2017 SP-20920 Consumer United States San Luis Obispo California OFF-FA-10003059 Office Supplies Fasteners 3.6200 2017 0.1 3.25800
9699 CA-2018-147032 31/07/2018 LB-16795 Home Office United States Wilmington Delaware OFF-PA-10003256 Office Supplies Paper 11.5400 2018 0.1 10.38600

9700 rows × 14 columns

In [84]:
desconto = df_dsa[df_dsa[('Desconto')] == 0.15]
print("Número de vendas com desconto de 15%:", desconto.shape[0])
Número de vendas com desconto de 15%: 457
In [ ]: