Konvertieren Pandas DataFrame Spalte Von String zu Int-Basierend auf Bedingten
Ich habe einen dataframe, der aussieht wie
df
viz a1_count a1_mean a1_std
n 3 2 0.816497
y 0 NaN NaN
n 2 51 50.000000
Ich konvertieren wollen die "viz" - Spalte auf 0 und 1, basierend auf einer bedingten. Ich habe versucht:
df['viz'] = 0 if df['viz'] == "n" else 1
aber ich bekommen:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Du musst angemeldet sein, um einen Kommentar abzugeben.
Man versucht, zu vergleichen eine Skalare mit der gesamten Serie, die Anlass zu der
ValueError
Sie sah. Eine einfache Methode wäre die Besetzung der boolean-Serie zuint
:Können Sie auch
np.where
:Ausgabe der booleschen Vergleich:
Und dann Gießen zu
int
:pd.to_numeric(myDF['myDFCell'], errors='coerce')
. Dies ist wahrscheinlich neueren pandas syntax. Die nötigen flag erzählt es zu konvertieren, dass die nicht konvertiert werden, um die Anzahl an NA, damit es nicht zu Fehler auslösen.NaN
so ist dies etwas anderes use-case hier