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

在R语言中按单列扩展非分组数据框:生成指定重复行数记录

数据框行重复实现方案

问题说明

现有如下结构的数据框:

1.     2.   3.    4.    5.  6  
1  15      0    1     0     1   0
2  9       1    1     0     0   1

第一列数字代表后续列内容需要重复的次数,目标是将第一行的0 1 0 1 0重复15次,第二行的1 1 0 0 1重复9次,生成新的数据框。

R语言实现

假设数据框名为df,可通过以下步骤实现:

  • 用rep()函数根据第一列数值生成重复的行索引
  • 按索引提取原数据框的行,最后删除第一列即可

代码示例:

# 构造示例数据框
df <- data.frame(
  count = c(15, 9),
  col2 = c(0, 1),
  col3 = c(1, 1),
  col4 = c(0, 0),
  col5 = c(1, 0),
  col6 = c(0, 1)
)

# 生成重复后的数据集
result_df <- df[rep(seq(nrow(df)), df$count), -1]

Python(Pandas)实现

假设数据框名为df,使用Pandas的repeat()方法快速实现:

  • 调用df.index.repeat()根据第一列的值生成重复的行索引
  • 用索引提取行后,删除第一列并重置索引

代码示例:

import pandas as pd

# 构造示例数据框
data = {
    'count': [15, 9],
    'col2': [0, 1],
    'col3': [1, 1],
    'col4': [0, 0],
    'col5': [1, 0],
    'col6': [0, 1]
}
df = pd.DataFrame(data)

# 生成重复后的数据集
result_df = df.loc[df.index.repeat(df['count'])].drop(columns='count').reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:03:17