1
resposta

[Desafio]: trabalhando em outros contextos

lista_colunas_def1 = list(df_def1.columns)
lista_colunas_def1 # ['Data de venda', 'Cliente', 'Valor da compra']

df_def1 = df_def1.explode(lista_colunas_def1[1:])
df_def1.reset_index(inplace=True, drop=True)
df_def1
df_def1.info()

import numpy as np
df_def1['Valor da compra'] = df_def1['Valor da compra'].apply(lambda x: x.replace('R$', '').replace(',', '.').strip()).astype(np.float16)

lista_colunas_def2 = list(df_def2.columns)
lista_colunas_def2 # ['apartamento','datas_combinadas_pagamento','datas_de_pagamento','valor_aluguel']

df_def2 = df_def2.explode(lista_colunas_def2[1:])
df_def2.reset_index(inplace=True, drop=True)
df_def2
df_def2.info()

df_def2['valor_aluguel'] = df_def2['valor_aluguel'].apply(lambda x: x.replace('$', '').replace(',', '.').replace(' reais', '').strip()).astype(np.float16)

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Olá, Luan! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso do método explode() para descompactar listas em colunas, utilizou muito bem o apply() com expressões lambda para transformar valores monetários e ainda compreendeu a importância de redefinir o índice com reset_index para manter a consistência da base após as transformações.

Uma dica interessante para o futuro é substituir o uso de apply() por str.replace() diretamente nas séries, o que torna o processamento mais rápido e vetorizado. Assim:

df_def1['Valor da compra'] = (
    df_def1['Valor da compra']
    .str.replace('R\$', '', regex=True)
    .str.replace(',', '.')
    .astype(float)
)

Isso faz com que as transformações sejam aplicadas de forma mais eficiente, evitando o loop implícito do apply().

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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