You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas DataFrame执行分组特定计算生成新列C

解决Pandas分组生成连续计数器列的问题

嘿,我明白你要做的事了——按A列的分组给每个组里的行配上从1开始的连续序号作为C列对吧?其实用Pandas的groupby配合cumcount()就能轻松搞定,我给你一步步拆解:

首先先简化下你创建DataFrame的代码,i < 5 == 0可以直接写成i < 5,这样逻辑更清晰,生成的结果是一样的:

import pandas as pd
df = pd.DataFrame({'A': [i < 5 for i in range(0, 10)], 'B': [i for i in range(0, 10)]})

接下来就是生成你要的C列,核心代码就一行:

df['C'] = df.groupby('A').cumcount() + 1

代码解释

  • df.groupby('A'):把原DataFrame按A列的布尔值分成两组(True组和False组)
  • cumcount():给每个分组内的行分配从0开始的连续索引
  • 加1之后,就把0起始的索引转换成了你需要的从1开始的计数器

运行后你就能得到完全符合预期的结果:

ABC
0True01
1True12
2True23
3True34
4True45
5False51
6False62
7False73
8False84
9False95

内容的提问来源于stack exchange,提问作者Ammar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:37:14