【问题标题】:Pandas add columns to a dataframe [duplicate]熊猫将列添加到数据框[重复]
【发布时间】:2018-10-14 07:30:41
【问题描述】:

所以,我已经看到了这个答案here,这对于返回一个输出的函数来说是明智的。如果我的函数有多个输出怎么办?

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

如下所示,工人 3 有两个老板,02,而工人 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

【问题讨论】:

  • 看起来你需要merge。您可以添加更多您正在处理的数据的详细信息吗?你拥有什么和你想要什么的一个例子会很棒
  • 工人只能有1个或2个老板吗?还是他们可以拥有更多?
  • 想拥有多少就拥有多少

标签: python pandas


【解决方案1】:

使用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

【讨论】:

    猜你喜欢
    • 2017-08-21
    • 2018-12-14
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多