Ich habe einen Datensatz mit Mitarbeiterinformationen. In diesem Datensatz sind die relevanten Felder die Spalte EmployeeName, ID-Spalte und SupervisorName-Spalte. Ich möchte eine neue Spalte namens SupervisorID erstellen, die uns die ID des Vorgesetzten jedes Mitarbeiters angibt.
Eingabedatenrahmen:
EmployeeName ID SupervisorName
Jim 123 Brittany
Brittany 345 Todd
Todd 456 Grace
erwartete Ausgabe:
EmployeeName ID SupervisorName SupID
Jim 123 Brittany 345
Brittany 345 Todd 456
Ich bin verkümmert, wie man dies effizient schreibt. Ich habe versucht, die Syntax np.where () und .iloc [] zu verwenden, aber ich bin neu bei Python und würde mich über jede Hilfe bei der Lösung freuen.
Sie können Merge verwenden und das DataFrame
mit sich selbst zusammenführen
import pandas as pd
data =[{'EmployeeName': 'Jim', 'ID': 123,'SupervisorName': 'Brittany'},
{'EmployeeName': 'Brittany', 'ID': 345,'SupervisorName': 'Todd'},
{'EmployeeName': 'Todd', 'ID': 456,'SupervisorName': 'Grace'}]
df = pd.DataFrame(data)
df_sup = df[['EmployeeName','ID']]
df_sup= df_sup.rename(columns={'EmployeeName': 'SupervisorName', 'ID': 'SupID'})
df = df.merge(right=df_sup, on='SupervisorName', how='inner')
df
Ausgang:
EmployeeName ID SupervisorName SupID
0 Jim 123 Brittany 345
1 Brittany 345 Todd 456
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen