Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich eine neue Rassenbezeichnungsspalte in Pandas basierend auf mehreren Ethnizitätsspalten?
Bei der Arbeit mit Datenrahmen in Pandas kann es erforderlich sein, eine neue Spalte basierend auf zu erstellen Werte aus mehreren vorhandenen Spalten. Ein häufiges Szenario entsteht, wenn eine benutzerdefinierte Funktion zeilenweise auf eine Reihe von Spalten angewendet werden muss, um die Werte der neuen Spalte zu bestimmen.
Betrachten Sie den folgenden Datenrahmen mit sechs auf die ethnische Zugehörigkeit bezogenen Daten Indikatorspalten:
df = pd.DataFrame({ 'ERI_Hispanic': [0, 1, 0, 0, 0, 0, 0, 0, 0, 0], 'ERI_AmerInd_AKNatv': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ERI_Asian': [0, 0, 0, 0, 0, 0, 1, 0, 0, 0], 'ERI_Black_Afr.Amer': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ERI_HI_PacIsl': [0, 0, 0, 0, 0, 0, 0, 1, 0, 0], 'ERI_White': [1, 0, 1, 1, 0, 1, 1, 1, 1, 1] })
Das Ziel besteht darin, eine neue Spalte mit dem Namen „race_label“ zu erstellen, die jede Zeile basierend auf Folgendem klassifiziert Kriterien:
Die Lösung umfasst zwei Schritte: Erstellen einer benutzerdefinierten Funktion zur Durchführung der Klassifizierung und Anwenden der Funktion zeilenweise zum Datenrahmen hinzufügen.
def label_race(row): if row['ERI_Hispanic'] == 1: return 'Hispanic' elif row['ERI_AmerInd_AKNatv'] + row['ERI_Asian'] + row['ERI_Black_Afr.Amer'] + row['ERI_HI_PacIsl'] + row['ERI_White'] > 1: return 'Two or More' elif row['ERI_AmerInd_AKNatv'] == 1: return 'A/I AK Native' elif row['ERI_Asian'] == 1: return 'Asian' elif row['ERI_Black_Afr.Amer'] == 1: return 'Black/AA' elif row['ERI_HI_PacIsl'] == 1: return 'Haw/Pac Isl.' elif row['ERI_White'] == 1: return 'White' else: return 'Other'
Diese Funktion verwendet eine Zeile des Datenrahmens als Eingabe und gibt die entsprechende Rassenbezeichnung basierend auf den bereitgestellten Kriterien zurück.
Um die neue Spalte „race_label“ zu erstellen, verwenden Sie die Funktion apply() zusammen mit dem Parameter axis=1, um die Funktion label_race auf jede Zeile des Datenrahmens anzuwenden.
df['race_label'] = df.apply(label_race, axis=1)
Der resultierende Datenrahmen mit der neuen Spalte wird unten angezeigt:
ERI_Hispanic ERI_AmerInd_AKNatv ERI_Asian ERI_Black_Afr.Amer ERI_HI_PacIsl ERI_White \ 0 0 0 0 0 0 1 1 1 0 0 0 0 0 2 0 0 0 0 0 1 3 0 0 0 0 0 1 4 0 0 0 0 0 0 5 0 0 0 0 0 1 6 0 0 1 0 0 1 7 0 0 0 0 1 1 8 0 0 0 1 0 0 9 0 0 0 0 0 1 race_label 0 White 1 Hispanic 2 White 3 White 4 Other 5 White 6 Two or More 7 White 8 Haw/Pac Isl. 9 White
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine neue Rassenbezeichnungsspalte in Pandas basierend auf mehreren Ethnizitätsspalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!