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

如何在Pandas中重复DataFrame每行指定次数?已实现R版本求Python方案

在Pandas中重复DataFrame每行指定次数的解决方案

嘿,我来帮你搞定这个需求!你要的是把DataFrame里的每一行重复指定次数(比如你例子里的7次),这个在Pandas里有好几种简洁的实现方式,和你R里的代码逻辑对应上的方案很容易写。

首先,先把你的样本数据转换成Pandas DataFrame:

import pandas as pd

# 构造样本数据
df = pd.DataFrame({
    'X': [41, 54],
    'a': [5, 3],
    'c': [2, 1]
})

方法1:用index.repeat()(最贴近你R代码的逻辑)

你R里用了rep(1:nrow(...), each=...)来生成重复的行索引,在Pandas里我们可以直接对DataFrame的索引做重复操作,然后用loc提取:

# 每行重复7次
repeated_df = df.loc[df.index.repeat(7)]

这个操作和你R代码的逻辑完全一致:先生成重复的行索引(每个索引重复7次),然后根据索引提取对应的行,最终就得到每行重复7次的结果。

如果你需要重置索引(避免重复的索引值影响后续操作),可以再加一步:

repeated_df = repeated_df.reset_index(drop=True)

方法2:用numpy.repeat(另一种灵活的方式)

如果你习惯用NumPy的工具,也可以用np.repeat来生成行的位置,再提取:

import numpy as np

# 生成重复的行索引位置,然后提取
repeated_df = df.iloc[np.repeat(np.arange(len(df)), 7)]
# 同样可以重置索引
repeated_df = repeated_df.reset_index(drop=True)

验证结果

运行上面的代码后,你可以用print(repeated_df)查看结果,会看到第一行41 | 5 | 2连续出现7次,第二行54 | 3 | 1也连续出现7次,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:36:21