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

如何用Pandas将列分组聚合为带连续值计数的列表?

解决Pandas连续相同值分组聚合生成指定格式列表的问题
  • 构造示例数据(如果已有目标DataFrame可跳过此步骤)
import pandas as pd

df = pd.DataFrame({'col': [0, 1, 1, 1, 0, 0, 0, 1, 0]})
  • 创建连续相同值的分组标识
    对比当前行与上一行的col值是否不同,生成布尔序列后累加,以此得到唯一的连续分组编号:
df['group'] = (df['col'] != df['col'].shift()).cumsum()
  • 分组聚合并格式化结果
    按分组编号聚合,提取每个组的标签(组内第一个col值)和连续出现次数(组的行数),格式化为<label>-<count>的字符串后转成列表:
result = df.groupby('group')['col'].agg(lambda x: f"{x.iloc[0]}-{len(x)}").tolist()

执行上述代码后,result的输出为:['0-1','1-3','0-3','1-1','0-1'],完全匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:39:54