將順序計數器列加入到Pandas DataFrame 中的群組
在資料整理的上下文中,有一個常見任務是新增順序計數器pandas 資料框中的列到群組。一種方法是使用回調函數,如您所示範的:def callback(x): x['seq'] = range(1, x.shape[0] + 1) return x雖然此方法有效,但它可能很麻煩並且需要定義一個單獨的函數。更簡潔和優雅的解決方案是利用 cumcount() 方法:
df.groupby(['c1', 'c2']).cumcount()此方法計算每個組的累積計數,有效地為組中的每一行分配一個序號。例如,考慮以下資料框:
index | c1 | c2 | v1 |
---|---|---|---|
0 | A | X | 3 |
1 | A | X | 5 |
2 | A | Y | 7 |
3 | A | Y | 1 |
4 | B | X | 3 |
5 | B | X | 1 |
6 | B | X | 3 |
7 | B | Y | 1 |
8 | C | X | 7 |
9 | C | Y | 4 |
10 | C | Y | 1 |
11 | C | Y | 6 |
index | c1 | c2 | v1 | seq |
---|---|---|---|---|
0 | A | X | 3 | 1 |
1 | A | X | 5 | 2 |
2 | A | Y | 7 | 1 |
3 | A | Y | 1 | 2 |
4 | B | X | 3 | 1 |
5 | B | X | 1 | 2 |
6 | B | X | 3 | 3 |
7 | B | Y | 1 | 1 |
8 | C | X | 7 | 1 |
9 | C | Y | 4 | 1 |
10 | C | Y | 1 | 2 |
11 | C | Y | 6 | 3 |
以上是如何有效地在 Pandas 中的分組資料中新增順序計數器列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!