我想問一下是否可以將 Pandas DataFrame 分成組,其中兩列的值在組內是唯一的?名稱列是主鍵。
輸入:
| name | num_1 | num_2 |
|--------|-------|--------|
| name_1 | 5 | 12 |
| name_2 | 5 | 12 |
| name_3 | 5 | 12 |
| name_4 | 7 | 14 |
| name_5 | 7 | 14 |
| name_6 | 8 | 14 |
| name_7 | 8 | 14 |
| name_8 | 9 | 13 |
| name_9 | 9 | 13 |
| name_10| 9 | 13 |
輸出:
| name | num_1 | num_2 | group_id |
|--------|-------|--------|----------|
| name_1 | 5 | 12 | 1 |
| name_2 | 5 | 12 | 2 |
| name_3 | 5 | 12 | 3 |
| name_4 | 7 | 14 | 1 |
| name_5 | 7 | 14 | 2 |
| name_6 | 8 | 14 | 3 |
| name_7 | 8 | 14 | 4 |
| name_8 | 9 | 13 | 1 |
| name_9 | 9 | 13 | 2 |
| name_10| 9 | 13 | 3 |
基本上 num_1 和 num_2 不能在組中重復。有什么辦法可以用熊貓做到這一點嗎?
uj5u.com熱心網友回復:
使用groupby有Groupby.cumcount:
In [1450]: df['group_id'] = df.groupby('num_2').cumcount() 1
In [1451]: df
Out[1451]:
name num_1 num_2 group_id
0 name_1 5 12 1
1 name_2 5 12 2
2 name_3 5 12 3
3 name_4 7 14 1
4 name_5 7 14 2
5 name_6 8 14 3
6 name_7 8 14 4
7 name_8 9 13 1
8 name_9 9 13 2
9 name_10 9 13 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/387630.html
下一篇:比較兩列中的兩個資料場并得到差異
