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

Python Pandas:如何按DataFrame指定列数值复制行并修改该列值为对应范围

实现方法

你已经通过df.loc[df.index.repeat(df['Table'])]完成了行复制,仅需额外对Table列生成对应连续序号即可,完整实现代码如下:

import pandas as pd

# 你现有的重复行逻辑
expanded_df = df.loc[df.index.repeat(df['Table'])].copy()
# 按原始索引分组生成1到原数值的连续序列
expanded_df['Table'] = expanded_df.groupby(level=0).cumcount() + 1
# 可选:重置索引去掉重复的原始索引
expanded_df.reset_index(drop=True, inplace=True)

代码说明

  • 重复行操作会保留原始DataFrame的索引,相同原始行拓展出来的多条数据会共用同一个原始索引
  • groupby(level=0)表示按最外层的索引(也就是原始索引)分组,cumcount()会给每个分组内的行生成从0开始的递增序号,加1后就得到你需要的1到原Table值的连续整数

如果数据量较大,也可以用直接拼接序列的方式规避groupby,性能更高:

import numpy as np

expanded_df = df.loc[df.index.repeat(df['Table'])].copy()
expanded_df['Table'] = np.concatenate([range(1, n+1) for n in df['Table']])
expanded_df.reset_index(drop=True, inplace=True)

运行上述任意一段代码,得到的expanded_df就是你需要的结果:

StoreAisleTable
11591
11592
11611
11612
11613

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:06:03