2 回答

TA貢獻1843條經驗 獲得超7個贊
你可以做類似的事情
df['both_role'] = df.groupby('Employee Number')['Role Code'].isin([1]).astype(int) * df.groupby('Employee Number')['Role Code'].isin([2]).astype(int) df[df.both_role == 1]
您可以使用員工編號進行分組,并檢查每個用戶的角色代碼是否包含 1 和 2。如果它同時包含 1 和 2 那么您可以過濾數據幀。

TA貢獻1817條經驗 獲得超6個贊
讓我們嘗試拆分部門名稱,然后groupby找出['Employee', 'Name']哪些員工具有兩個角色nunique:
(df.assign(Name=df['Department Name'].str.split(', '))
.explode('Name')
.loc[lambda x:x.groupby(['Employee Number','Name'])
['Role Code'].transform('nunique') ==2 ]
.drop('Name', axis=1)
)
輸出:
Department Name Employee Number Role Code
0 AU:Dept1 1000 1
1 AU:Dept1, AU:Dept3 1000 2
4 CZ:Dept4, CZ:Dept6, CZ:Dept7 1001 2
5 CZ:Dept4 1001 1
6 PL:Dept1 1002 2
7 PL:Dept2, PL:Dept1 1002 1
9 SG:Dept1 1003 1
10 SG:Dept1 1003 2
添加回答
舉報