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

已知单输出函数为Pandas DataFrame加列方案,多匹配结果如何生成多列?

实现多输出场景的Pandas列分配方案

当然可以搞定这种多匹配结果的列分配需求!针对你给出的示例数据,我们可以通过Pandas的分组标记+宽表转换组合操作来实现,具体步骤和代码如下:

1. 先准备示例数据

首先我们把你给出的示例数据转换成Pandas DataFrame:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'Worker_ID': [3, 3, 1],
    'Boss_ID': [0, 2, 2]
})

2. 给组内记录添加序号标记

我们需要给同一个Worker_ID下的不同Boss_ID添加序号,用来区分它们的位置:

# 按Worker_ID分组,给每组内的记录从1开始编号
df['boss_seq'] = df.groupby('Worker_ID').cumcount() + 1

此时数据会变成这样:

Worker_IDBoss_IDboss_seq
301
322
121

3. 行转列实现多列分配

通过pivot方法把同一Worker_ID下的多个Boss_ID转成不同列:

# 行转列,将同一Worker_ID的Boss_ID分配到不同列
result_df = df.pivot(
    index='Worker_ID',
    columns='boss_seq',
    values='Boss_ID'
)

# 重命名列名,让结果更直观
result_df.columns = [f'Boss_ID_{seq}' for seq in result_df.columns]

# 可选:把Worker_ID从索引转回普通列
result_df = result_df.reset_index()

最终得到的结果就是你需要的多列格式:

Worker_IDBoss_ID_1Boss_ID_2
302
12NaN

补充说明

  • 如果某个Worker_ID只有1个匹配的Boss_ID,多余的列会用NaN填充,你可以根据需求用fillna()方法替换成0、空字符串等;
  • 这个方法是通用的,不管每个Worker_ID有多少个匹配结果,都会自动生成对应数量的列,不需要提前知道最大匹配数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:53:21