1
resposta

SettingWithCopyWarning

notas_fulano['Desvio'] = notas_fulano['Fulano'] - nota_media_fulano
notas_fulano

Quando executo esse comando, apesar do resultado ser mostrado corretamente, recebo o seguinte aviso:

SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
notas_fulano['Desvio'] = notas_fulano['Fulano'] - nota_media_fulano

Como eu poderia corrigir o código, para que não incorresse nesse possível problema?

Desde já, agradeço pela atenção.

1 resposta

Oi, Alexandre, tudo bem?

Desculpe a demora em te responder!

A mensagem SettingWithCopyWarning é emitido pelo Pandas para alertar sobre uma possível operação que está sendo feita em uma cópia de uma parte de um DataFrame, mas não precisa se preocupar, pois não se trata de um erro. Para remover a mensagem, você pode utilizar o método .loc para atribuir valores a uma coluna específica do DataFrame. Ficaria assim:

notas_fulano.loc['Desvio'] = notas_fulano['Fulano'] - nota_media_fulano

Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software