Olá Rafael,
Bem observado!
Realmente o copy()
não vai criar referência, esse detalhe acabou passando despercebido na aula porque ainda é criado uma referência, mas por outro motivo.
No Jupyter sempre que é executada uma célula o último valor que a gente deixa para vizualizar (dados_new
no caso da aula) é salvo em uma variável, e é aí que é criado a referência. O valor é salvo na variável _
dados_new = dados.copy()
dados_new
Por causa da última linha (dados_new
) o Jupyter executa algo como _ = dados_new
por trás e é aqui que a referência é criada.
Espero ter ajudado a esclarecer a dúvida, qualquer coisa é só falar!