J'ai le code comme ci-dessous. Si j'appelle la fonction par la première méthode, cela fonctionne. Mais si j'appelle la fonction en utilisant la seconde méthode, j'obtiens une erreur. Je pensais que la méthode deux devrait fonctionner comme la fonction attend des colonnes comme son entrée. Pourquoi devons-nous dire que l'exécution de la fonction sur les colonnes comme décrit dans la méthode 1?utilisation de la fonction - appel utilisant apply vs appel direct
train
est la trame de données pandas
.
import pandas as pd
def impute_age(cols):
Age = cols[0]
Pclass = cols[1]
if pd.isnull(Age):
if Pclass == 1:
return 37
elif Pclass == 2:
return 29
else:
return 24
else:
return Age
#pd.isnull(train[['Age']])
#method 1
#train['Age'] = train[['Age','Pclass']].apply(impute_age, axis=1)
#method 2
impute_age(train[['Age','Pclass']])
Qu'est-ce que 'pd' et surtout: qu'est-ce que' train'? –
pd = pandas et train est un dataframe..sorry pour la confusion – user2543622