假設我有以下資料。 一個人可以有多個選區代碼
問題。 使用python和pandas,我如何將它們組合成這樣。 所有選區代碼的唯一ID和名字的串列。注意,如果有重復的選區代碼,但它將其合并為每個Unique_ID的1個唯一選區代碼串列
。| Unique_ID | 姓名選區代碼404 | Mark | |
|---|---|---|---|
| 教師,職員 | 教師,職員 | 教師,職員
| 659 |
我曾嘗試在pandas上使用groupby和聚合屬性,但我無法得到我想要的結果。有什么建議嗎?我知道我可以通過迭代每一行來做到這一點,但我不想這樣做。
uj5u.com熱心網友回復:
設定資料--提供作業實體非常重要
test_data = [
[404, 'Mark', 'teacher']。
[404, 'Mark', 'Staff'] 。
[404, 'Mark', 'Staff'] 。
[659, 'Julio', 'Students'],
[1025, 'Jasmine', 'Staff'] 。
[1025, 'Jasmine', 'Students']
]
cols = ['Unique_ID', 'Name', 'Confinuency Code']
df = pd.DataFrame(test_data, columns=cols)
df.groupby(['Unique_ID', 'Name'])['Confinuency Code'].apply(lambda grp: list(set(grp)).reset_index()
輸出
Unique_ID Name Constinuency Code
0 404 Mark [教師,員工]
1 659 Julio [學生]
2 1025 Jasmine [學生, 職員]
如果你需要一個字串代替:
df. groupby(['Unique_ID', 'Name'])['Confinuency Code'].apply(lambda grp: ', '.join(set(grp)).reset_index()
輸出
Unique_ID Name Constinuency Code
0 404 馬克老師,作業人員
1 659 Julio 學生
2 1025 Jasmine Student, Staff
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/332424.html
標籤:
