J'utilise l'ensemble de données Auto MPG qui contient des valeurs manquantes dans la colonne / l'attribut puissance
sous la forme de caractères ?
.
Par conséquent, lorsque j'utilise le code -
data["horsepower"].isnull.values.any()
OU
data.isnull.values.any()
Les deux renvoient False
car ces codes fonctionnent pour NaN valeurs ou valeurs vides.
Comment puis-je localiser de telles valeurs manquantes contenant un caractère spécial, qui dans mon cas se trouve être ?
plutôt que la ou les valeurs NaN traditionnelles. p>
Merci!
3 Réponses :
Utilisez replace
avant de vérifier NaN
s:
data = pd.read_csv(path, na_values=["?"]) data["horsepower"].isnull().values.any()
Si DataFrame
est créé par read_csv
ajouter un paramètre na_values
pour convertir ?
en NaN
s:
data["horsepower"].replace('?',np.nan).isnull().values.any()
vous pouvez définir na_values
comme ?
ou utiliser ce qui suit:
df.replace(r'[\W]',np.nan,regex=True)
\ W
en trouve caractère qui n'est pas une lettre, un chiffre numérique ou le caractère de soulignement.
vous devez d'abord convertir ?
en NaN
.
Ensuite, vous pouvez y chercher des valeurs nulles.
1) pour convertir ?
en NaN
:
pd.isna(data['horsepower'])
2) pour trouver des valeurs nulles:
data.replace('?',np.NaN)
il retournera un dataframe avec une série de Vrai/False
.
remplacez
?
parNaN
en utilisantdf.horsepower.replace ('?', np.NaN, inplace = True)
Puis procédez comme d'habitudeSi vous lisez vos données à partir d'un fichier csv, indiquez
na_values
comme?
dans read_csv. pour plus de détails, visitez pandas.pydata.org/pandas-docs/ stable / généré /…@MohamedThasinah J'ai vérifié ma réponse avant de publier. Ça marche.