1
resposta

Desafio: aba quantidade de vendas

1-Construir um gráfico de mapa com a quantidade de vendas por estado.

qtd_vendas_estado = dados.groupby('Local da compra')[['Produto']].count()
qtd_vendas_estado = dados.drop_duplicates(subset = 'Local da compra')[['Local da compra', 'lat', 'lon']].merge(qtd_vendas_estado, left_on = 'Local da compra', right_index = True).sort_values('Produto', ascending = False)

fig_mapa_qtd_vendas = px.scatter_geo(qtd_vendas_estado,
                                  lat = 'lat',
                                  lon = 'lon',
                                  scope = 'south america',
                                  size = 'Produto',
                                  template = 'seaborn',
                                  hover_name = 'Local da compra',
                                  hover_data = {'lat': False, 'lon': False},
                                  title = 'Quantidade de vendas por estado')

2-Construir um gráfico de linhas com a quantidade de vendas mensal.

qtd_vendas_mensal = dados.set_index('Data da Compra').groupby(pd.Grouper(freq = 'ME'))['Produto'].count().reset_index()
qtd_vendas_mensal['Ano'] = qtd_vendas_mensal['Data da Compra'].dt.year
qtd_vendas_mensal['Mês'] = qtd_vendas_mensal['Data da Compra'].dt.month_name()
fig_qtd_vendas_mensal = px.line(qtd_vendas_mensal,
                                                        x = 'Mês',
                                                        y = 'Produto',
                                                        markers = True,
                                                        range_y = (0, qtd_vendas_mensal.max()),
                                                        color='Ano',
                                                        line_dash = 'Ano',
                                                        title = 'Quantidade de vendas por mês')

fig_qtd_vendas_mensal.update_layout(yaxis_title = 'Quantidade vendida')

3-Construir um gráfico de barras com os 5 estados com maior quantidade de vendas.

top_5_estados = dados.groupby('Local da compra')[['Produto']].count().sort_values('Produto', ascending = False)

fig_top_5_vendas = px.bar(top_5_estados.head(),
                          text_auto = True,
                          title = 'Estados com maiores vendas')
fig_top_5_vendas.update_layout(showlegend = False, yaxis_title = 'Quantidade vendida')

4-Construir um gráfico de barras com a quantidade de vendas por categoria de produto.

qtd_categoria = dados.groupby('Categoria do Produto')[['Produto']].count().sort_values('Produto', ascending = False)
fig_qtd_categoria = px.bar(qtd_categoria,
                          text_auto = True,
                          title = 'Quantidade de vendas por categoria')
fig_qtd_categoria.update_layout(showlegend = False, yaxis_title = 'Quantidade vendida')
with aba2:
    coluna1, coluna2 = st.columns(2)
    with coluna1:
        st.metric('Receita', formata_numero(dados['Preço'].sum(), 'R$'))
        st.plotly_chart(fig_mapa_qtd_vendas, use_container_width =  True)
        st.plotly_chart(fig_top_5_vendas, use_container_width =  True)
        
    with coluna2:
        st.metric('Quantidade de vendas', formata_numero(dados.shape[0]))
        st.plotly_chart(fig_qtd_vendas_mensal, use_container_width = True)
        st.plotly_chart(fig_qtd_categoria, use_container_width =  True)
1 resposta

Oi, Marcia! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu código está bem organizado! A forma como você usou o groupby junto ao merge para construir o gráfico de mapa mostra domínio dos dados. A estruturação da aba2 com st.columns também está excelente para apresentar os indicadores e os gráficos lado a lado.

Uma dica interessante para o futuro é usar o value_counts() quando quiser contar elementos de uma coluna de forma mais direta. Veja este exemplo:


contagem_estados = dados['Local da compra'].value_counts()

Esse código conta quantas vezes cada estado aparece na coluna 'Local da compra', sem precisar do groupby.

Qualquer dúvida que surgir, compartilhe no fórum.

Abraços e bons estudos!

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!