Olá Frederico tudo bem com você??
Muito boa sua pergunta!! Não é boba não!
Seguinte...
Aqui você está chamando um método notas.head()
você pode por exemplo colocar algum valor, como 20 e então irá visualizar as 20 primeiras linhas, invés do padrão 5. No caso de shape, index, describe está fazendo referência a um atributo público do objeto:
?df.describe
Colocando a ? antes do comando você irá visualizar a documentação sobre o comando e neste caso do describe
ele funciona sem o ( ) porém, conforme o comando que passei, você consegue visualizar que o describe
também tem parâmetros:
"df.describe(percentiles=None, include=None, exclude=None)"
Espero ter te ajudado e qualquer dúvida é só retornar aqui! Bons estudos!