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

Python如何基于现有DataFrame生成带新主键的伪造数据并合并

实现代码

首先导入需要的依赖库:

import pandas as pd
import random
import string

基于你的原始数据完成追加逻辑:

# 原始DataFrame
df1 = pd.DataFrame({'id': ['1a', '2b', '3c'], 'name': ['Anna', 'Peter', 'John'], 'year': [1999, 2001, 1993]})

# 自定义需要生成的新数据条数,示例为4条和你给出的样例新增条数对应
new_data_num = 4
# 记录已存在的id用于去重,保证主键唯一
used_ids = set(df1['id'])
new_data_list = []

for _ in range(new_data_num):
    # 生成唯一的新id
    while True:
        # 随机选原始id作为前缀
        base_id = random.choice(df1['id'])
        # 生成随机小写字母后缀
        random_suffix = random.choice(string.ascii_lowercase)
        new_id = base_id + random_suffix
        if new_id not in used_ids:
            used_ids.add(new_id)
            break
    # 随机从原始数据中选取name和year
    new_name = random.choice(df1['name'])
    new_year = random.choice(df1['year'])
    new_data_list.append({'id': new_id, 'name': new_name, 'year': new_year})

# 追加新数据到原DataFrame
df1 = pd.concat([df1, pd.DataFrame(new_data_list)], ignore_index=True)

逻辑说明

  • 用集合存储所有已使用的id,生成新id时循环校验避免重复,完全保证主键唯一性
  • name、year字段都从原始数据的对应列随机选取,满足随机打乱重排的要求
  • 只需修改new_data_num的数值,即可自定义要生成的新数据条数
  • 由于是随机生成,每次运行得到的新数据内容会有差异,但完全符合你给出的规则要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:15:03