如何使用Pandas groupby按布尔列标记将DataFrame行分组为不同活动
实现按活动分组的Pandas代码调整
核心逻辑是利用布尔列的累加和生成活动分组ID:new列每出现一次True,累加和就会加1,刚好对应每个活动的唯一标识,同一个活动的所有行累加和数值完全一致。
完整调整后的代码
# 生成活动分组ID:对new列做累加和 for activity_id, activity_df in df.groupby(df['new'].cumsum()): print(f"活动ID: {activity_id}") print(activity_df)
逻辑说明
- 布尔值在Pandas中做数值计算时,
True会被识别为1,False会被识别为0 df['new'].cumsum()会逐行累加数值,每遇到一次新活动起始(new=True),累加值就+1,刚好作为每个活动的唯一分组键- 你提到的预期3个活动分组的场景,生成的累加和取值会是1、2、3,刚好对应三个分组,完全符合需求
内容的提问来源于stack exchange,提问作者Mister Jones
相关产品推荐
相关产品推荐

