Je veux ajouter une colonne binaire à mon Dataframe en fonction de la question de savoir si des colonnes données contiennent NAN ou non.
J'ai essayé de le faire avec le code ci-dessous. P>
A B C D E 10 NaN 40 NaN 0 NaN NaN 80 90 0 20 45 NaN 89 0 NaN NaN NaN 46 1
4 Réponses :
Notez que à la place, vous pouvez (et devrait) faire: p> et code> attendez une seule variable booléenne, que
pd.series code> n'est pas. C'est pourquoi Python se plaint de ne pas savoir comment convertir un
PD.Series code> à un booléen.
Vous voulez vérifier si une ligne avec des colonnes ( Vous pouvez le faire en utilisant a, b, c code>) a tout
nan code> ou non.
Numpy.where code> : P>
In [1723]: %timeit dat['E'] = np.where(dat[['A','B','C']].isnull().all(1), 1, 0)
914 µs ± 18.5 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
Merci @anky. J'ai essayé d'aller pour une solution optimisée.
@anky i Autres vérifiés, en réalité iSNA () code> et
isnull () code> ne montre pas beaucoup de différence de performance. Le changement majeur est dû à
np.where code>.
laissez-nous essayer quelque chose de nouveau
J'ai créé une colonne avec true et false, puis appliquée une si elle est vraie et 0 s'il est faux