Ich habe nach einer Antwort für die letzten 30 min gesucht, aber die einzigen Lösungen sind entweder für eine einzelne Spalte oder in R. Ich habe ein Dataset, in dem ich die ('Y/N') Werte auf 1 bzw. 0. Ich fühle mich wie Kopieren und Einfügen des Codes unter 17 mal ist sehr ineffizient.Wie Werte in einem Datenrahmen ändern Python
df.loc[df.infants == 'n', 'infants'] = 0
df.loc[df.infants == 'y', 'infants'] = 1
df.loc[df.infants == '?', 'infants'] = 1
Meine Lösung ist das Folgende. Dies verursacht keinen Fehler, aber die Werte im Datenrahmen ändern sich nicht. Ich gehe davon aus, dass ich etwas wie df = df_new machen muss. Aber wie geht das?
for coln in df:
for value in coln:
if value == 'y':
value = '1'
elif value == 'n':
value = '0'
else:
value = '1'
EDIT: Es gibt 17 Spalten in diesem Datensatz, aber es ist ein weiteres Daten-Set Ich hoffe, in Angriff zu nehmen, die 56 Spalten enthält.
republikanisch n y n.1 y.1 y.2 y.3 n.2 n.3 n.4 y.4? y.5 y.6 y.7 n.5 y.8 0 republikanisch n y y y y n n n n y y y n? 1 Demokrat? y y? y y n n n n y n y n n 2 democrat y y n? y n n n n y n y n n 3 democrat y y y n y y n n n y? y y y y 4 democrat y y y n n n n n y y y y
, wie viele Spalten wollen Sie ändern? Können Sie df.head() anzeigen? –
Es gibt 17 Spalten in diesem Datensatz, aber es gibt einen anderen mit 56. – handavidbang