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

如何在保持原始行顺序的前提下重复Pandas DataFrame的行n次

问题描述

我有一个Pandas DataFrame,示例如下:

Column AColumn B
A1
B2
C3

我希望重复每一行,同时保持原始行的顺序,预期结果如下:

Column AColumn B
A1
B2
C3
A1
B2
C3

尝试使用index.repeat方法,但得到的是行排序后的结果:

Column AColumn B
A1
A1
B2
B2
C3
C3

请问如何实现预期的行重复效果?

解决方案

方法1:直接拼接原DataFrame

最直观的方式是将原DataFrame和自身拼接,自然保持原始顺序:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({'Column A': ['A', 'B', 'C'], 'Column B': [1, 2, 3]})

# 重复2次(可根据需求调整拼接次数)
result = pd.concat([df, df], ignore_index=True)

方法2:修复index.repeat的排序问题

如果一定要用index.repeat,可以在重复后通过稳定排序还原原始顺序:

# 重复每行2次
repeated_df = df.loc[df.index.repeat(2)]
# 用归并排序(稳定排序)按原始索引重新排列
result = repeated_df.sort_index(kind='mergesort')

方法3:用numpy.tile生成重复索引

借助numpy的tile函数生成按原始顺序重复的索引序列,再提取行:

import pandas as pd
import numpy as np

df = pd.DataFrame({'Column A': ['A', 'B', 'C'], 'Column B': [1, 2, 3]})
# 生成重复2次的索引数组
repeated_indices = np.tile(df.index, 2)
result = df.loc[repeated_indices].reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:57:11