基于日期与唯一标识为DataFrame分配捕获序号
为分组排序后的DataFrame添加组内序号列
原始数据
| Date | Tag |
|---|---|
| 1/21/22 | 001 |
| 1/22/22 | 001 |
| 1/23/22 | 001 |
| 1/21/22 | 002 |
| 1/22/22 | 002 |
| 1/23/22 | 002 |
目标效果
| Date | Tag | CaptureOrder |
|---|---|---|
| 1/21/22 | 001 | 1 |
| 1/22/22 | 001 | 2 |
| 1/23/22 | 001 | 3 |
| 1/21/22 | 002 | 1 |
| 1/22/22 | 002 | 2 |
| 1/23/22 | 002 | 3 |
实现代码
利用pandas的groupby()结合cumcount()方法即可完成,cumcount()会从0开始为每组内的元素计数,加1后就能得到从1开始的序号:
import pandas as pd # 假设你的DataFrame名为df df['CaptureOrder'] = df.groupby('Tag').cumcount() + 1
说明
groupby('Tag'):按Tag列对数据分组cumcount():为每个分组内的行分配从0开始的连续整数- 加1后得到从1起始的组内序号,完全匹配需求的CaptureOrder列
内容的提问来源于stack exchange,提问作者Ryan Gary
相关产品推荐
相关产品推荐

