向datafram添加列

2024-04-18 14:28:32 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我看到了这个答案here,这对于返回一个输出的函数是合理的。如果我的函数有多个输出呢?你知道吗

更具体地说,假设我交叉引用了某个ID上的一些数据,但是当我调用某些ID时,它会返回多个匹配项,我想把它们放在不同的列中。你知道吗

这方面的一个例子如下所示,其中worker 3有两个老板02,而worker 1有一个老板2。你知道吗

Worker_ID Boss_ID
        3       0
        3       2
        1       2

是否可以创建第二列并填充,而无需首先遍历、计算匹配数并创建相关列数?你知道吗

编辑:

我想简单地说一下:

Worker_ID  Boss_ID_1 Boss_ID_2   ...as necessary
        3          0         2
        1          2       nan

Tags: 数据函数答案id编辑hereas交叉
1条回答
网友
1楼 · 发布于 2024-04-18 14:28:32

使用cumcount创建一个键,然后我们可以使用pivot

df.assign(key=df.groupby('Worker_ID').cumcount()+1).\
   pivot(index='Worker_ID',columns='key',values='Boss_ID').\
      add_prefix('Boss_ID_')
Out[242]: 
key        Boss_ID_1  Boss_ID_2
Worker_ID                      
1                2.0        NaN
3                0.0        2.0

相关问题 更多 >