Análise Exploratória de Dados (EDA)
A Análise Exploratória de Dados (EDA) é um processo inicial de investigação dos dados que busca compreender sua estrutura, identificar padrões, detectar anomalias e formular hipóteses. Esse processo utiliza tanto métodos estatísticos quanto visualizações para fornecer insights que guiam a análise posterior.
QUESTÃO 1- Qual é a média das vendas semanais de todas as lojas presentes na nossa base de dados?
Neste exercício, você vai calcular a média das vendas semanais (coluna Weekly_Sales
) por loja (coluna Store
) e exibir o resultado em forma de gráfico interativo.
PASSOS:
- Selecione as colunas de interesse:
Store
eWeekly_Sales
. - Agrupe os dados por loja utilizando
groupby()
e calcule a média das vendas semanais para cada loja. - Crie um gráfico de barras interativo com o Plotly que mostre as médias calculadas.
DICAS:
- Utilize
df.groupby('Store')['Weekly_Sales'].mean()
para calcular a média. - Utilize
px.bar()
da biblioteca Plotly para criar o gráfico.

import pandas as pd
import plotly.express as px
# Função para importar os dados
def importar_dados():
file_path = 'Walmart_Sales.csv'
df = pd.read_csv(file_path)
return df
# Função para calcular a média das vendas semanais por loja e plotar o gráfico
def calcular_media_vendas_loja(df):
# Agrupar os dados e calcular a média
media_vendas = df.groupby('Store')['Weekly_Sales'].mean().reset_index()
# Criar o gráfico de barras interativo
fig = px.bar(media_vendas, x='Store', y='Weekly_Sales', title='Média das Vendas Semanais por Loja',
labels={'Store': 'Loja', 'Weekly_Sales': 'Média das Vendas (US$)'}, color='Weekly_Sales')
fig.show()
# Função principal
def main():
df = importar_dados()
calcular_media_vendas_loja(df)
# Executar
if __name__ == "__main__":
main()
QUESTÃO 2- Desvio Padrão das Vendas Semanais por Loja
Neste exercício, você vai calcular o desvio padrão das vendas semanais (Weekly_Sales
) para cada loja (Store
) e exibir o resultado em forma de gráfico interativo.
PASSOS:
- Selecione as colunas de interesse:
Store
eWeekly_Sales
. - Agrupe os dados por loja utilizando
groupby()
e calcule o desvio padrão das vendas semanais. - Prepare os dados para o gráfico interativo, transformando os valores calculados em um DataFrame.
- Crie um gráfico de barras interativo com o Plotly.
DICAS:
- Utilize
df.groupby('Store')['Weekly_Sales'].std()
para calcular o desvio padrão. - Converta o resultado em um DataFrame para facilitar a manipulação.
- Utilize
px.bar()
para criar o gráfico.

import pandas as pd
import plotly.express as px
# Função para importar os dados
def importar_dados():
file_path = 'Walmart_Sales.csv'
df = pd.read_csv(file_path)
return df
# Função para calcular o desvio padrão das vendas semanais por loja e plotar o gráfico
def calcular_desvio_padrao_vendas_loja(df):
# Agrupar os dados e calcular o desvio padrão
desvio_vendas = df.groupby('Store')['Weekly_Sales'].std().reset_index()
desvio_vendas.columns = ['Store', 'Desvio_Padrao']
# Exibir os dados calculados
print("Desvio padrão das vendas semanais por loja:")
print(desvio_vendas)
# Criar o gráfico de barras interativo
fig = px.bar(desvio_vendas, x='Store', y='Desvio_Padrao',
title='Desvio Padrão das Vendas Semanais por Loja',
labels={'Store': 'Loja', 'Desvio_Padrao': 'Desvio Padrão (US$)'},
color='Desvio_Padrao', color_continuous_scale='Viridis')
fig.update_layout(xaxis=dict(tickmode='linear')) # Garantir que todas as lojas apareçam no gráfico
fig.show()
# Função principal
def main():
df = importar_dados()
calcular_desvio_padrao_vendas_loja(df)
# Executar
if __name__ == "__main__":
main()
QUESTÃO 3- Qual é a soma total das vendas semanais por loja? Como podemos visualizar esse total de maneira ordenada?
PASSOS:
- Carregue a base de dados.
- Agrupe os dados pela coluna
Store
utilizandogroupby()
. - Calcule a soma das vendas semanais por loja.
- Ordene o resultado para facilitar a visualização.
DICAS:
- Utilize
df.groupby('Store')['Weekly_Sales'].sum()
para agrupar e somar as vendas. - Utilize
sort_values()
para ordenar os resultados de forma decrescente.
import pandas as pd
# Função para importar os dados
def importar_dados():
file_path = 'Walmart_Sales.csv'
df = pd.read_csv(file_path)
return df
# Função para calcular a soma das vendas semanais por loja
def somar_vendas_por_loja(df):
# Agrupar os dados por loja e calcular a soma das vendas
soma_vendas = df.groupby('Store')['Weekly_Sales'].sum().reset_index()
# Ordenar as vendas de forma decrescente
soma_vendas = soma_vendas.sort_values(by='Weekly_Sales', ascending=False)
print("Soma total das vendas semanais por loja:")
print(soma_vendas)
# Função principal
def main():
df = importar_dados()
somar_vendas_por_loja(df)
# Execução da função main
if __name__ == "__main__":
main()
QUESTÃO 4- Qual é a mediana das vendas semanais (Weekly_Sales) para cada loja (Store)? Como podemos visualizar essa mediana de forma clara e comparativa entre as lojas?
PASSOS:
- Carregue a base de dados.
- Agrupe os dados por loja utilizando
groupby()
. - Calcule a mediana das vendas semanais para cada loja.
- Exiba os resultados de maneira ordenada e clara.
DICAS:
- Utilize
df.groupby('Store')['Weekly_Sales'].median()
para calcular a mediana. - Ordene os valores para facilitar a comparação.
import pandas as pd
# Função para importar os dados
def importar_dados():
file_path = 'Walmart_Sales.csv'
df = pd.read_csv(file_path)
return df
# Função para calcular a mediana das vendas semanais por loja
def calcular_mediana_vendas_por_loja(df):
# Agrupar os dados por loja e calcular a mediana
mediana_vendas = df.groupby('Store')['Weekly_Sales'].median().reset_index()
# Ordenar os resultados pela mediana
mediana_vendas = mediana_vendas.sort_values(by='Weekly_Sales', ascending=False)
print("Mediana das vendas semanais por loja:")
print(mediana_vendas)
# Função principal
def main():
df = importar_dados()
calcular_mediana_vendas_por_loja(df)
# Execução da função main
if __name__ == "__main__":
main()
QUESTÃO 5- Quantas vezes cada preço de combustível aparece na base de dados e qual o percentual de cada preço em relação ao total de entradas?
PASSOS:
- Carregue a base de dados.
- Utilize o método
value_counts()
para contar o número de ocorrências de cada valor na colunaFuel_Price
. - Calcule o percentual de cada preço em relação ao total de entradas utilizando a opção
normalize=True
dovalue_counts()
. - Exiba os resultados de forma clara e use um gráfico para mostrar a distribuição percentual de preços.
DICAS:
- Utilize
df['Fuel_Price'].value_counts(normalize=True)
para contar as ocorrências e calcular os percentuais. - O gráfico de barras pode ser útil para visualizar os percentuais de cada preço de combustível.

import pandas as pd
import plotly.express as px
# Função para importar os dados
def importar_dados():
file_path = 'Walmart_Sales.csv'
df = pd.read_csv(file_path)
return df
# Função para contar valores únicos e calcular percentuais
def contar_valores_unicos(df):
# Contagem de valores únicos e percentuais
contagem_combustivel = df['Fuel_Price'].value_counts(normalize=True).reset_index()
contagem_combustivel.columns = ['Fuel_Price', 'Percentual']
# Ordenar por percentual
contagem_combustivel = contagem_combustivel.sort_values(by='Percentual', ascending=False)
# Exibir o resultado
print("Contagem de preços de combustível e seus percentuais:")
print(contagem_combustivel)
# Criar gráfico com Plotly
fig = px.bar(contagem_combustivel, x='Fuel_Price', y='Percentual',
title="Percentual de Preços de Combustível",
labels={'Fuel_Price': 'Preço do Combustível', 'Percentual': 'Percentual (%)'},
color='Fuel_Price',
color_continuous_scale='Viridis')
fig.show()
# Função principal
def main():
df = importar_dados()
contar_valores_unicos(df)
# Execução da função main
if __name__ == "__main__":
main()
QUESTÃO 6- Quais são os valores únicos presentes na coluna 'Store' e quantas lojas diferentes existem na base de dados?
PASSOS:
- Carregue a base de dados.
- Utilize o método
unique()
para obter os valores únicos da colunaStore
. - Calcule o número de lojas distintas presentes na coluna
Store
. - Exiba os resultados de forma clara e utilize um gráfico para ilustrar a distribuição dos valores únicos.
DICAS:
- Utilize
df['Store'].unique()
para obter os valores únicos na colunaStore
. - Utilize
len(df['Store'].unique())
para contar o número de lojas únicas. - O gráfico de barras pode ser útil para mostrar a quantidade de lojas distintas.

import pandas as pd
import plotly.express as px
# Função para importar os dados
def importar_dados():
file_path = 'Walmart_Sales.csv'
df = pd.read_csv(file_path)
return df
# Função para visualizar valores únicos em uma coluna
def visualizar_valores_unicos(df):
# Obter valores únicos e contar o número de lojas únicas
lojas_unicas = df['Store'].unique()
num_lojas = len(lojas_unicas)
# Exibir os resultados
print(f"Valores únicos na coluna 'Store': {lojas_unicas}")
print(f"Número de lojas únicas: {num_lojas}")
# Criar gráfico com Plotly
lojas_contagem = df['Store'].value_counts().reset_index()
lojas_contagem.columns = ['Store', 'Count']
fig = px.bar(lojas_contagem, x='Store', y='Count',
title="Distribuição de Lojas na Base de Dados",
labels={'Store': 'Número da Loja', 'Count': 'Contagem'},
color='Store',
color_continuous_scale='Viridis')
fig.show()
# Função principal
def main():
df = importar_dados()
visualizar_valores_unicos(df)
# Execução da função main
if __name__ == "__main__":
main()
QUESTÃO 7- Quais são as vendas semanais das lojas com um preço de combustível acima de $3?
PASSOS:
- Carregue a base de dados.
- Utilize o método
query()
para filtrar as lojas onde o preço do combustível é maior que $3. - Exiba as vendas semanais dessas lojas filtradas.
- Crie um gráfico para visualizar as vendas semanais das lojas que atendem a essa condição.
DICAS:
- Utilize
df.query('Fuel_Price > 3')
para filtrar as lojas com preço de combustível maior que $3. - Um gráfico de barras pode ser útil para visualizar as vendas semanais dessas lojas.

import pandas as pd
import plotly.express as px
# Função para importar os dados
def importar_dados():
file_path = 'Walmart_Sales.csv'
df = pd.read_csv(file_path)
return df
# Função para filtrar dados e exibir vendas semanais
def filtrar_dados(df):
# Filtrar lojas com preço de combustível maior que $3
filtro = df.query('Fuel_Price > 3')
# Exibir as vendas semanais das lojas filtradas
print("Vendas semanais das lojas com preço de combustível acima de $3:")
print(filtro[['Store', 'Weekly_Sales', 'Fuel_Price']])
# Criar gráfico com Plotly para visualizar as vendas semanais
fig = px.bar(filtro, x='Store', y='Weekly_Sales',
title="Vendas Semanais das Lojas com Preço de Combustível Acima de $3",
labels={'Store': 'Número da Loja', 'Weekly_Sales': 'Vendas Semanais ($)'},
color='Store',
color_continuous_scale='Viridis')
fig.show()
# Função principal
def main():
df = importar_dados()
filtrar_dados(df)
# Execução da função main
if __name__ == "__main__":
main()
Caso o Python ainda não esteja instalado em seu dispositivo, clique no botão abaixo para realizar a instalação.