python - pandas-groupby 中一行的出现顺序
问题描述
我正在尝试使用组内行的“索引”或“出现顺序”向我的数据框添加一个新列。
例如,我有这样的东西
col1
0 John
1 Lucy
2 Jane
3 Jane
4 Jane
5 Lucy
我想要groupby('col1')
并获得每个组内的出现顺序。
我正试图得到这样的东西
col1 col2
0 John 1
1 Lucy 1
2 Jane 1
3 Jane 2
4 Jane 3
5 Lucy 2
我希望我很清楚。先验对我来说似乎并不太棘手,但我就是做不到!
谢谢!
解决方案
df['count'] = df.groupby(by=['col1']).cumcount()+1
print(df)
col1 count
0 John 1
1 Lucy 1
2 Jane 1
3 Jane 2
4 Jane 3
5 Lucy 2
推荐阅读
- c++ - 将 Boost 路径向量项传递给 Crypto++ FileSource 函数
- html - 在标签旁边放置输入
- javascript - 更改移动设备上的触摸事件行为
- json - 使用 jq 将 JSON 对象转换为 Prometheus 指标格式
- php - 更改 Vtiger 字段的显示名称
- database - 使用 DBMS_DATAPUMP 导出 Oracle 模式不会导出 ctx_ddl 首选项,也不会创建 ctxsys.context 索引类型
- angular - formarray 角度简单示例
- pandas - 如果在 180 个工作日内相互标记元素
- php - 数据包乱序
- javascript - 黑白匿名异步函数使用和异步函数使用有什么区别