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

Python中基于DataFrame的count值为字符串生成递增序号的实现

Pandas 数据展开与编号生成实现方案

你当前的需求是按count字段的数值将单条记录拆分为对应数量的多条记录,再为拆分后的记录生成带两位递增序号的type拼接字段,不需要使用melt方法(该方法适用于宽表转长表场景,和当前行复制的需求不匹配),直接用repeat方法完成行展开后结合你拿到的编号逻辑即可实现需求。

完整实现代码如下:

import pandas as pd

# 构造原始示例数据,你可以替换为自己的数据源读取逻辑
df = pd.DataFrame({
    'id': ['aa', 'aa', 'bb'],
    'type': ['hi', 'hey', 'hi'],
    'date': ['q1 2023', 'q2 2023', 'q1 2023'],
    'count': [2, 3, 2]
})

# 核心处理逻辑
result = (
    # 按count值重复对应行,完成数据集展开
    df.loc[df.index.repeat(df['count'])]
    # 生成带两位序号的新count字段
    .assign(count=lambda d: d['type'] + d.groupby(['id', 'date', 'type']).cumcount().add(1).astype(str).str.zfill(2))
    # 调整列顺序和预期输出对齐
    [['id', 'count', 'type', 'date']]
    # 重置索引,清除原重复索引的影响
    .reset_index(drop=True)
)

print(result)

运行上述代码即可得到你给出的预期输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:15:04