Ich habe Datenframe namens df
mit Originalform (4361, 15)
. Einige Werte der Spalte agefm
sind NaN. Sehen Sie nur:Wie setzen Werte im Pandas-Datenrahmen auf NaN-Werten einer anderen Spalte?
> df[df.agefm.isnull() == True].agefm.shape
(2282,)
Dann erstelle ich neue Spalte und stellen Sie alle Werte auf 0:
df['nevermarr'] = 0
So würde Ich mag nevermarr
Wert auf 1 setzen, dann in dieser Zeile agefm
ist Nan:
df[df.agefm.isnull() == True].nevermarr = 1
nichts geändert:
> df['nevermarr'].sum()
0
Was mache ich falsch?
Wenn Sie 'df [df.agefm.isnull() == True] .nevermarr = 1 'verwenden, können Sie das' == True' löschen, da es bereits die Ausgabe von 'isnull' ist. Dann, wenn es sich nicht ändert, denke ich, dass es sein muss, weil diese Methode eine Kopie Ihres Datenrahmens erstellt. Dann ändern Sie einen temporären Datenrahmen, der am Ende der Zeile verschwindet, nicht Ihren ursprünglichen Datenrahmen (aber ich bin mir nicht sicher). Wie auch immer, Jezraels Antwort ist gut. – ysearka
@ysearka Das scheint eine gute Erklärung zu sein)) – Rocketq