Supposons que vous ayez un dataframe avec des nombres de type float. Comment vérifieriez-vous si une entrée est vide?

Exemple df:

df = pd.DataFrame([(.21, ), (.01, .67), (.66, .03), (.21, .18)],
                  columns=['dogs', 'cats'])

Non, il ne peut pas y avoir de NAN.

0
Snorrlaxxx 3 juin 2020 à 22:13

4 réponses

Meilleure réponse

Vous pouvez l'utiliser pour remplacer NaN par ce que vous voulez:

df.fillna(0, inplace=True)
df

   dogs  cats
0  0.21  0.00
1  0.01  0.67
2  0.66  0.03
3  0.21  0.18
1
NYC Coder 3 juin 2020 à 19:19

Lorsque vous exécutez cette commande, le blanc devient lui-même NaN. Je ne suis donc pas sûr de votre résultat? Vous voulez que NaN disparaisse? tu peux le faire:-

df = pd.DataFrame([(.21, ), (.01, .67), (.66, .03), (.21, .18)],
                  columns=['dogs', 'cats']).fillna(" ")

Production :- entrez la description de l'image ici

0
Abhas Mehrotra 3 juin 2020 à 19:20

Utiliser isna avec any

df.isna().any()
Out[103]: 
dogs    False
cats     True
dtype: bool

Ou à partir de info, vous pouvez savoir si la valeur non nulle n'est pas égale à la longueur de la trame de données

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 2 columns):
dogs    4 non-null float64
cats    3 non-null float64
dtypes: float64(2)
memory usage: 192.0 bytes
1
YOBEN_S 3 juin 2020 à 19:16

[index for index,row in df.iterrows() if any(np.isnan(row))]

En itérant toutes les lignes, cela peut vous montrer les index des lignes avec un vide

0
hkgyyf 3 juin 2020 à 19:21