1
resposta

fillna() para valores nulos em mais de uma coluna

Uma dúvida rápida: nesse trecho do código df.fillna(df.median(), inplace=True), em nenhum momento é explicitado no código que a coluna é a MISSING_PAYMENTS. Assim, o que aconteceria se houvesse valores faltantes em outras colunas e escrevêssemos esse mesmo código? o método fillna() seria esperto o bastante para colocar medianas diferentes para cada coluna? Ou ele preencheria tudo igual em todas as colunas?

Caso sim, como explicitar para preencher somente a mediana de uma coluna em específico? Tentei df['MISSING_PAYMENTS'].fillna(df.median(), inplace=True) mas não deu certo...

Agradeço desde já!

1 resposta

Oi, Pedro! Tudo bom contigo?

Desculpa a demora em te trazer uma resposta.

Quanto ao primeiro questionamento, o código df.fillna(df.median(), inplace=True) vai substituir todos os dados faltantes das colunas pelas respectivas medianas de suas próprias colunas. Então, aproveitando para responder à segunda e terceira perguntas, no código, o fillna() substitui os valores NaN de cada coluna pelas médias das colunas que eles estão submetidos. Podemos comprovar isso observando o que retorna o método df.median() que nada mais é que uma Series do pandas informando a coluna e a média do valor. Portanto o fillna() irá substituir os valores da média pela coluna especificada.

Por fim, quanto ao quarto questionamento, a solução para sua busca seria também definir a coluna ['MISSING_PAYMENTS'] também na definição do valor de substituição, da seguinte forma: df['MISSING_PAYMENTS'].fillna(df['MISSING_PAYMENTS'].median(), inplace=True). Pois assim, como enviamos uma Series para o fillna() ele não reconhece as outras colunas presentes em df.median() e não consegue fazer a substituição de valores.

Espero ter te ajudado. Bons estudos!