1
resposta

[Dúvida] Por que considerar tempo_servico = tipo_contrato?

Prezados, No vídeo 5, da aula 2, para solucionar o problema de existirem células vazias na variável "conta.cobranca.Total" o instrutor orientou a multiplicarmos o valor mensal (conta.cobranca.mensal) pelos meses referentes ao tipo de contrato (conta.contrato).

filtro de linhas com a coluna conta.cobranca.Total vazias, mostrando as colunas de tempo_servico, contrato, cobranca.mensal e cobranca.Total

Contudo, percebi que o tipo de contrato não corresponde necessariamente aos meses de uso, o que pode indicar um relatório extraído durante as operações. Para chegar a essa conclusão consultei os demais valores, conforme exemplo:

amostra de dataframe com colunas conta.contrato e cliente.tempo_servico com filtro de conta.contrato diferente de mes a mes

Diante disso, minha pergunta é:

Por que nesses casos, para preencher o valor de cobrança total, devemos considerar o tempo de serviço(cliente.tempo_servico) como sendo igual ao número de meses do tipo de contrato(conta.contrato) se o tempo de serviço não corresponde, necessariamente, ao tipo de contrato nos demais casos do dataframe?

1 resposta

Olá Felipe, tudo bem?

Desculpa pela demora em dar um retorno.

Você está correto em seu apontamento. A prioridade, nesse caso, seria fazer a multiplicação pela coluna "cliente.tempo_servico". No entanto, ao tentar fazer dessa forma com os dados filtrados com o código:

dados_normalizados[dados_normalizados['conta.cobranca.Total'] == ' '][
    ['cliente.tempo_servico', 'conta.contrato', 'conta.cobranca.mensal', 'conta.cobranca.Total']
]

Nos deparamos com a situação em que, quando os valores de "conta.cobranca.Total" estão em branco, os valores de "cliente.tempo_servico" estão com 0. Portanto, se realizarmos a multiplicação, a coluna "conta.cobranca.Total" também ficará com 0.

Diante disso, a forma como interpretei o problema foi a seguinte: "Os clientes que estão com 0 na coluna "cliente.tempo_servico" é porque não concluíram nem 1 mês de assinatura, porém seu contrato é de dois anos, então podemos inferir que ao final dos dois anos eles terão um tempo de serviço de no mínimo 24 meses, dada a natureza de seu contrato. Mas isso é válido para todos os casos da base de dados?

Não, isso só é válido para essa seleção que fizemos. Por esse motivo, realizamos a filtragem apenas desses índices da seleção anterior (idx = dados_normalizados[dados_normalizados['conta.cobranca.Total'] == ' '].index) e aplicamos a transformação apenas nas amostras desses índices (dados_normalizados.loc[idx, "conta.cobranca.Total"] = dados_normalizados.loc[idx, "conta.cobranca.mensal"] * 24). Dessa forma, não realizamos a operação em toda a base de dados.

Espero que a explicação tenha ficado mais clara, mas caso ainda não tenha ficado, pode retornar por aqui mesmo.

Percebi no seu print que o índice 2075 está com o valor "um ano" em "conta.contrato". Você conseguiria me informar de qual link pegou a base de dados, por gentileza? Aguardo retorno.

Bons estudos!