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

如何在Pandas DataFrame中随机复制指定行并插入原行下方

解决方案:在Pandas DataFrame中复制指定索引行并插入原行下方

你的现有代码仅单独重复了选中的行,没有保留原数据集的其他内容,也未实现将复制行紧邻原行插入的效果。以下是满足需求的可行方案:

实现步骤

  • 随机选取目标行的索引
  • 拆分原DataFrame为「选中行之前的部分」「选中行」「选中行副本」「选中行之后的部分」四个片段
  • 按顺序拼接四个片段得到最终结果
  • (可选)重置索引,避免出现重复索引的混乱情况

完整代码

import pandas as pd
import random

# 模拟你的datafile数据
datafile = pd.DataFrame([307,209,371,266,372,298,338,302,264,247], columns=[0])

# 随机选取目标索引
indexnumber = random.randrange(datafile.shape[0])

# 拆分数据片段
df_before = datafile.iloc[:indexnumber+1]  # 包含原行的前半部分
df_duplicate = datafile.iloc[indexnumber:indexnumber+1]  # 原行的副本
df_after = datafile.iloc[indexnumber+1:]  # 原行之后的部分

# 拼接得到最终DataFrame
newdf = pd.concat([df_before, df_duplicate, df_after], ignore_index=True)

print(newdf)

效果示例

假设随机选中索引为1(对应值209),输出结果会是:

0
0   307
1   209
2   209
3   371
4   266
5   372
6   298
7   338
8   302
9   264
10  247

代码说明

  • df_before:截取原DataFrame从开头到选中索引(包含)的所有行
  • df_duplicate:单独取出选中的行作为复制副本
  • df_after:截取原DataFrame选中索引之后的所有行
  • pd.concat:按顺序拼接三个片段,ignore_index=True用于重置索引,避免出现重复索引问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:20:52