1
resposta

alunos['Notas-Média(Notas)'] = alunos['Notas'].apply(lambda x: x - alunos['Notas'].mean())

alunos['Notas-Média(Notas)'] = alunos['Notas'].apply(lambda x: x - alunos['Notas'].mean())

estou com dificuldade para entender o x:x ... o x eu mudei para qualquer nome e roda mesmo assim .... seria o nome da função ??

estou com difuculdade nessa parte " x: x "

1 resposta

Olá Marcio, tudo bem? Espero que sim!

A expressão lambda no Python é uma forma de usar uma função em uma única linha sem a necessidade de usar o def.

Pensando nela como uma função da matemática. Onde temos f(x) := x ou f(y) := y. Quando fazemos lambda x estamos criando uma função com a variável x. Portanto você pode escolher qualquer nome que quiser e será equivalente a f(x) por exemplo. Se for lambda variavel, será equivalente a f(variavel).

Depois dos dois pontos ( : ), estaremos dizendo o que vamos fazer com essa variável. Portanto lambda variavel : variavel +1 é o mesmo que f(variavel) := variavel + 1. No exemplo que você apresentou, está da seguinte forma:

lambda x : x - alunos['Notas'].mean()

Portanto está sendo iniciada uma função lambda com a variável x. E queremos que a operação seja x - alunos['Notas'].mean() para qualquer valor de x.

Seria equivalente a f(x) := x - alunos['Notas'].mean()

Como o método apply() vai aplicar a função passada para cada valor da coluna alunos['Notas'], como pode ser visto no código:

alunos['Notas'].apply(lambda x: x - alunos['Notas'].mean())

Cada vez esse x será um valor da coluna alunos['Notas'], fazendo com que a função seja aplicada para cada um dos valores, retornando uma coluna de mesmo tamanho.

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!