Liste avec les attributs des personnes chargées dans pandas dataframe df2
. Pour le nettoyage, je veux remplacer la valeur zéro (0
ou '0'
) par np.nan
.
df2.dtypes
ID object
Name object
Weight float64
Height float64
BootSize object
SuitSize object
Type object
dtype: object
Code de travail pour définir la valeur zéro sur np.nan
:
df2.loc[df2['Weight'] == 0,'Weight'] = np.nan
df2.loc[df2['Height'] == 0,'Height'] = np.nan
df2.loc[df2['BootSize'] == '0','BootSize'] = np.nan
df2.loc[df2['SuitSize'] == '0','SuitSize'] = np.nan
Croyez que cela peut être fait d'une manière similaire/plus courte:
df2[["Weight","Height","BootSize","SuitSize"]].astype(str).replace('0',np.nan)
Cependant, ce qui précède ne fonctionne pas. Les zéros restent dans df2. Comment y faire face?
data['amount']=data['amount'].replace(0, np.nan)
data['duration']=data['duration'].replace(0, np.nan)
Vous pouvez utiliser la méthode 'replace' et passer les valeurs que vous souhaitez remplacer dans une liste comme premier paramètre avec celle souhaitée comme deuxième paramètre:
cols = ["Weight","Height","BootSize","SuitSize","Type"]
df2[cols] = df2[cols].replace(['0', 0], np.nan)