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

如何使用copy()与append()实现pandas DataFrame按分组扩增指定行数

实现代码

首先导入依赖库:

import pandas as pd
import numpy as np

目标函数实现如下:

def augment_dataframe(df, n):
    # 复制原始数据,避免修改输入的原DataFrame
    result = df.copy()
    # 按Name列分组遍历每个用户
    for name, _ in df.groupby('Name'):
        # 构造n行待新增的数据,Cart字段设为np.nan
        add_rows = pd.DataFrame({
            'Name': [name]*n,
            'Cart': [np.nan]*n
        })
        # 用append方法拼接新增行到结果中
        result = result.append(add_rows, ignore_index=True)
    # 按Name排序,保证同用户的原有行和新增行连续排列,重置索引
    result = result.sort_values('Name', ignore_index=True)
    return result

测试示例

# 输入测试数据
df = pd.DataFrame({
    'Name':['Ali', 'Ali', 'Ali', 'Sasha', 'Sasha', 'Sasha'],
    'Cart':['book', 'phonecase', 'shirt', 'phone', 'food', 'bag']
})
n = 3
# 调用函数得到输出
output_df = augment_dataframe(df, n)
print(output_df)

逻辑说明

  • 开头调用copy()方法复制原始数据,保证函数操作不会修改输入的原DataFrame
  • 按Name字段分组后,为每个用户生成指定行数的空数据,Cart字段统一赋值为np.nan
  • 通过append()方法完成数据拼接,最后排序重置索引,输出格式和要求的示例完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:15:00