2 votes

Remplacer 'nan' en tant que chaîne par NaN dans plusieurs colonnes

Je travaille actuellement avec un fichier dont un certain nombre de colonnes/séries contiennent des caractères numériques et alpha. Je pense à 35 km/heure. En regardant le fichier .info, la série est (évidemment) un objet à cause des lettres.

J'ai remplacé les lettres par des '' et je me suis retrouvé avec le numérique, mais j'ai remarqué que .info était conservé comme objet. J'ai constaté que chaque colonne contenait des chaînes de 'nan' et non pas des cellules vides NaN, par exemple

s = ['banana', 'apple', 'pear', 'cherry', 'apple', 'apple'. 'banana] 
t = [7,4,7,2,8,8,5]
x = [3,4,5,3,2, 'nan', 6,5]
y = [32,'nan', 'nan', 67,54,21,101]
z = ['nan', 654, 567, 876, 967, 'nan', 763]

Je cherche à effectuer une recherche dans des colonnes spécifiques x,y,z et à remplacer les 'nan' par des NaN appropriés.

J'ai réussi à le faire avec des colonnes individuelles :

df['x'].replace('nan', np.NaN)

Mais je me demande s'il existe un moyen plus efficace de le faire, par exemple en créant ma propre fonction def, etc.

J'ai aussi essayé :

df[['x', 'y', 'z']].replace('nan', np.NaN, inplace=True)

Mais ça n'a pas semblé fonctionner.

1voto

LeopardShark Points 161

Vous pouvez le faire.

df[["x", "y", "z"]] = df[["x", "y", "z"]].replace("nan", np.NaN)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X