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!