python - Pandas Dataframe - 添加显示满足条件的行数的列
问题描述
我有一个数据框:
import pandas as pd
df = pd.DataFrame({'item': ['A', 'A', 'B', 'B', 'B', 'B', 'C']})
df
物品 | |
---|---|
0 | 一个 |
1 | 一个 |
2 | 乙 |
3 | 乙 |
4 | 乙 |
5 | 乙 |
6 | C |
我想添加entrynum
从 1 开始显示每个项目的行号的列,所以我的数据框看起来像这样:
物品 | 条目编号 | |
---|---|---|
0 | 一个 | 1 |
1 | 一个 | 2 |
2 | 乙 | 1 |
3 | 乙 | 2 |
4 | 乙 | 3 |
5 | 乙 | 4 |
6 | C | 1 |
我可以逐行迭代 Pandas 数据帧,如果item
值更改设置entrynum
值等于,1
否则设置entrynum
等于前一个entrynum
值加1
。但我想知道是否存在更好的解决方案?
我在想我想要的类似于 SQL 窗口函数,但我不明白如何通过item
.
解决方案
按项目分组并累计计算每个组中的实体。将输出存储在入口列中。
df['entrynum']=df.groupby('item').cumcount()+1
推荐阅读
- php - 使用更新方法时,Laravel 加密无法加密到数据库
- mysql - mysql读取查询真的很慢。在这种情况下有什么问题?
- flutter - audio_service 颤振包未启动
- javascript - 如何在同一行获得 4 张卡目前我连续有 2 张卡
- java - 使用单个 UDP 套接字从 Java 中的不同线程读取/写入是否安全
- angular - Cloudinary 的上传小部件 v2 中的多个文件问题
- r - 如何按填充颜色对 ggplot2 中的条形图进行分组,同时保持降序?
- php - UNISERVER 严格表
- php - 错误:您的要求无法解析为一组可安装的软件包
- github - 有没有办法自动要求 PR 作者从分支/叉子中删除文件夹?