Pandas - Berechnet den Z-Score für alle Spalten

Ich habe einen Datenrahmen, der eine einzelne Spalte mit IDs enthält, und alle anderen Spalten sind numerische Werte, für die ich Z-Scores berechnen möchte. Hier ist ein Teil davon:

ID      Age    BMI    Risk Factor
PT 6    48     19.3    4
PT 8    43     20.9    NaN
PT 2    39     18.1    3
PT 9    41     19.5    NaN

Einige meiner Spalten enthalten NaN-Werte, die nicht in die Z-Score-Berechnungen einbezogen werden sollen. Daher beabsichtige ich, eine Lösung für diese Frage zu verwenden:Wie zscore normalisieren Pandas Spalte mit Nans?

df['zscore'] = (df.a - df.a.mean())/df.a.std(ddof=0)

Ich möchte diese Lösung auf alle meine Spalten mit Ausnahme der ID-Spalte anwenden, um einen neuen Datenrahmen zu erstellen, den ich als Excel-Datei speichern kann

df2.to_excel("Z-Scores.xlsx")

Also im Grunde genommen; Wie kann ich Z-Scores für jede Spalte berechnen (ohne Berücksichtigung der NaN-Werte) und alles in einen neuen Datenrahmen verschieben?

SIDENOTE: In Pandas gibt es ein Konzept namens "Indexing", das mich einschüchtert, weil ich es nicht gut verstehe. Wenn die Indizierung für die Lösung dieses Problems von entscheidender Bedeutung ist, machen Sie Ihre Erläuterungen zur Indizierung zu kurz.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage