Python如何生成统计另一列累计出现次数的新列?
解决方案:生成Fruit的累计出现次数列
原代码的问题
- 语法错误:
groupby是DataFrame的方法,必须使用括号()调用,而非方括号[] - 分组逻辑偏差:需求是单独按
Fruit统计累计次数,不需要将Date纳入分组条件 - 计数起始值不符:
cumcount()默认从0开始计数,而预期结果要求从1开始
正确实现代码
df['Frequency'] = df.groupby('Fruit').cumcount() + 1
验证结果
执行后将得到符合预期的输出:
| Fruit | Frequency | Date |
|---|---|---|
| Apple | 1 | |
| Banana | 1 | |
| Orange | 1 | |
| Apple | 2 | |
| Apple | 3 | |
| Orange | 2 |
代码逻辑说明
df.groupby('Fruit'):将数据按水果名称分组,相同水果的行被归为同一组.cumcount():对每组内的行按顺序从0开始计数,标记当前行是该组的第几个元素+1:将计数起始值从0调整为1,匹配“首次出现记为1,累计递增”的需求
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

