Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Final Vendas online e Administração de condomínios

Segue como foi tratado os dados para a etapa final do curso:

  1. Vendas online
df_p1['Data de venda']=pd.to_datetime(df_p1['Data de venda'],format="%d/%m/%Y")
df_p1_subset = df_p1.groupby([df_p1['Data de venda'].dt.strftime('%m'),'Cliente'])[['Valor da compra']].sum().reset_index()

df_p1_subset = df_p1_subset[['Cliente','Valor da compra']].sort_values('Valor da compra', ascending=False).reset_index()

df_p1_subset.drop('index', axis=1,inplace=True)

Output:

ClienteValor da compra
0Isabely Joanes2329.30
1Maria Julia2086.65
2Julya Meireles1643.74
3Diego Armandiu1478.47
4Paulo Castro899.16
5Thiago Fritzz885.24
6Ana Lucia836.50
7João Gabriel386.34
8Pedro Pasco311.15
  1. Administração de condomínios
df_p2['datas_combinadas_pagamento']=pd.to_datetime(df_p2['datas_combinadas_pagamento'],format="%d/%m/%Y")
df_p2['datas_de_pagamento']=pd.to_datetime(df_p2['datas_de_pagamento'],format="%d/%m/%Y")

df_p2['datas_combinadas_pagamento'] = df_p2['datas_combinadas_pagamento'].dt.strftime('%d')
df_p2['datas_de_pagamento'] = df_p2['datas_de_pagamento'].dt.strftime('%d')

df_p2[['datas_de_pagamento','datas_combinadas_pagamento']]=df_p2[['datas_de_pagamento','datas_combinadas_pagamento']].astype(np.int64)

df_p2['status_pagamento'] = df_p2.apply(
    lambda row: 'Sim' if (row['datas_de_pagamento'] <= row['datas_combinadas_pagamento']) else 'Não',
    axis=1
)

Output:

apartamentodatas_combinadas_pagamentodatas_de_pagamentovalor_aluguelstatus_pagamento
0A101151000.0Não
1A101132500.0Não
2A102221100.0Sim
3A102262600.0Não
4B201371200.0Não
1 resposta
solução!

Oii Igor, tudo bem?

Obrigada por compartilhar os dois projetos aqui no fórum! Dá para ver que você entendeu bem a proposta do desafio e foi além ao aplicar o mesmo raciocínio em contextos completamente diferentes.

No projeto de vendas, gostei da combinação do groupby com strftime para agregar por mês e depois ordenar pelo valor, ficou bem limpo. No de condomínios, a ideia de usar apply com lambda para comparar os dias e gerar o status_pagamento é uma solução bastante direta e fácil de ler.

Uma consideração pequena para o projeto de condomínios: extrair só o dia com strftime('%d') pode gerar um comportamento inesperado em casos onde o pagamento e o vencimento caem em meses diferentes. Vale notar que, dependendo do contexto real dos dados, comparar os objetos datetime diretamente (sem extrair o dia) pode ser mais robusto para cobrir esse cenário.

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade