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

如何在Pandas中按列值重复行并添加重复索引列

解决方法:为重复后的DataFrame添加repeat_id列

嗨,这问题我熟!你已经用df.loc[df.index.repeat(df.n)]搞定了行重复的核心部分,现在只需要结合Pandas的分组计数功能,就能轻松生成你要的repeat_id列,完美匹配目标结果。

直接上完整实现代码:

import pandas as pd

# 你的原始DataFrame
df = pd.DataFrame(data={
    'id': ['A', 'B', 'C'],
    'n' : [ 1, 2, 3],
    'v' : [ 10, 13, 8]
})

# 一步完成行重复+添加repeat_id
result = df.loc[df.index.repeat(df.n)].assign(
    repeat_id=lambda x: x.groupby(level=0).cumcount()
)

# 验证结果是否符合预期
print(result)

简单解释下原理

  • df.index.repeat(df.n)会根据n列的数值重复对应行,重复后的行保留原始的索引值
  • groupby(level=0)按原始索引分组(因为重复行的索引和原行完全一致)
  • cumcount()会为每个分组内的行从0开始递增计数,刚好生成0到k-1的repeat_id值(k就是每行对应的n值)

运行后得到的结果和你给出的what_i_want完全一致!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:14:23