0
votes

Vérification des nans dans de nombreuses colonnes de Pandas

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


0 commentaires

4 Réponses :


2
votes

Notez que et attendez une seule variable booléenne, que pd.series n'est pas. C'est pourquoi Python se plaint de ne pas savoir comment convertir un PD.Series à un booléen.

à la place, vous pouvez (et devrait) faire: xxx


0 commentaires

2
votes

Vous voulez vérifier si une ligne avec des colonnes ( a, b, c code>) a tout nan code> ou non.

Vous pouvez le faire en utilisant 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)


2 commentaires

Merci @anky. J'ai essayé d'aller pour une solution optimisée.


@anky i Autres vérifiés, en réalité iSNA () et isnull () ne montre pas beaucoup de différence de performance. Le changement majeur est dû à np.where .



1
votes

laissez-nous essayer quelque chose de nouveau xxx


0 commentaires

2
votes

J'ai créé une colonne avec true et false, puis appliquée une si elle est vraie et 0 s'il est faux xxx


0 commentaires