Ich bin neu im Programmieren und würde mich über Ihre Einsichten freuen!Python Wie man die angegebene Zeichenkette in [] Klammern im Pandas Dataframe extrahiert und eine neue Spalte mit booleschen Werten erstellt
Ich habe einen Datenrahmen wie diesen.
df;
info Price
0 [100:Sailing] $100
1 [150:Boating, 100:Sailing] $200
2 [200:Surfing] $300
Ich möchte neue Spalten mit Aktivität Namen auf Informationen in Infospalte basierend erstellen und 1 in der neuen Spalte hinzufügen, wenn es einen entsprechenden Namen in Info-Spalte ist. Es wird wie ein Datenrahmen unten aussehen.
Price Sailing Boating Surfing
0 $100 1 0 0
1 $200 1 1 0
2 $300 0 0 1
habe ich versucht, einen Code Schlag aber hat nicht funktioniert .. (obwohl dieser Ansatz in anderen Spalten funktioniert)
df1 = df.info.str.extract(r'(Boating|Sailing|Surfing)',expand=False)
df2 = pd.concat([df,pd.get_dummies(df1).astype(int)],axis=1)
Ich habe mehr als 10 Tausende von Daten wie diese so idealy würde Ich mag schreiben ein Code, der automatisch die angegebene Zeichenfolge (wie Surfen) in der Info-Spalte extrahiert, erstellt eine neue Spalte mit dem Namen der Aktivität und gibt 1 oder 0 zurück, wie oben gezeigt. Ich dachte, dass Klammern in den Daten oder Datentypen im Dataframe das Problem verursachen, aber ich bin nicht sicher, wie ich das angehen soll.
Vielen Dank für den Hinweis! Ich konnte über diesen Ansatz nicht nachdenken;) Als ich den Code ausführte, bekam ich einen Fehler wie diesen "AttributeError: Kann .str accessor nur mit Zeichenfolgenwerten verwenden, die np.object_ dtype in Pandas verwenden". Der Fehler klingt wie Werte in der Info-Spalte ist kein String-Wert und ich muss es irgendwie ändern, um den Code auszuführen .. (?) Haben Sie eine Idee, was diesen Fehler verursacht? – yusuke0426
Sie können tatsächliche Listen sein, denke ich. Kannst du das als erste Zeile versuchen? Df1 = df ['info']. Str.join ('___'). Str.get_dummies ('___') ' – ayhan
Wow! Es funktioniert wie eine Magie! Ich danke dir sehr! Ich erkannte, dass 'df ['info']. Str.join ('___')' Klammern in der Info-Spalte magisch löscht. Aber ich habe nicht verstanden, wie diese Logik funktioniert. Können Sie die Rolle von .str.join ('___') 'und' .str.get_dummies ('___') '? Ich möchte das wirklich verstehen. – yusuke0426