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

如何将df1的agent_code按指定行数分配至df2生成df3?

将agent_code分配到df2指定行生成df3的解决方案

以下是几种常见场景下的实现方案,你可以根据实际数据结构调整:

场景1:根据行号范围分配agent_code

如果df1包含agent_code以及需要分配到df2的起始/结束行号:

import pandas as pd

# 示例数据
df1 = pd.DataFrame({
    'agent_code': ['A001', 'A002', 'A003'],
    'start_row': [0, 3, 5],
    'end_row': [2, 4, 6]
})

df2 = pd.DataFrame({
    'data': ['val1', 'val2', 'val3', 'val4', 'val5', 'val6', 'val7']
})

# 初始化df3并填充agent_code
df3 = df2.copy()
df3['agent_code'] = None

for _, row in df1.iterrows():
    df3.loc[row['start_row']:row['end_row'], 'agent_code'] = row['agent_code']

场景2:通过匹配键分配agent_code

如果df1和df2存在共同的匹配字段(如group_id),可通过关联匹配分配:

import pandas as pd

# 示例数据
df1 = pd.DataFrame({
    'group_id': [1, 2, 3],
    'agent_code': ['A001', 'A002', 'A003']
})

df2 = pd.DataFrame({
    'group_id': [1,1,1,2,2,3,3],
    'data': ['val1', 'val2', 'val3', 'val4', 'val5', 'val6', 'val7']
})

# 关联生成df3
df3 = df2.merge(df1, on='group_id', how='left')

场景3:按固定行数循环分配agent_code

如果需要将df1的agent_code按顺序循环分配给df2的每N行:

import pandas as pd

# 示例数据
df1 = pd.DataFrame({'agent_code': ['A001', 'A002', 'A003']})
df2 = pd.DataFrame({'data': ['val1','val2','val3','val4','val5','val6','val7']})

# 设定每个agent_code分配的行数
n_rows_per_agent = 2
# 生成循环分配的agent_code列表
agent_list = df1['agent_code'].repeat(n_rows_per_agent).tolist()
# 补充不足的行数
agent_list += [agent_list[-1]] * (len(df2) - len(agent_list))

df3 = df2.copy()
df3['agent_code'] = agent_list

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:45:36