J'aimerai choisir le premier nan à être nommé école tandis que l'autre nan à être nommé grade.
En-tête de colonne d'origine:
Name Address School Class Subject School
Voici le résultat que je souhaite:
df = df.rename(columns={np.nan:'School'})
Quand j'ai essayé ce code:
Name Address School Class Subject Grade
Voici mon résultat avec mon code:
Name Address nan Class Subject nan
3 Réponses :
Vous pouvez parcourir les colonnes et si vous rencontrez un nan , remplacez-le par le bon:
cols = []
count = 1
for column in df.columns:
if column == np.nan:
if count == 1:
cols.append('School')
else if count == 2:
cols.append('Grade')
else:
cols.append(column)
count+=1
else:
cols.append(column)
df.columns = cols
Existe-t-il un moyen de spécifier nan sans boucle?
Ce que je vais faire
s=df.columns.to_series() s[s.isnull()]=['school','grade'] df.columns=s
J'aime celui-ci parce que vous n'avez pas besoin de connaître à l'avance ou de comprendre les noms de colonnes non nan en premier.
df.columns = ["Name", "Address", "School", "Class", "Subject", "Grade"]