python - Pandas 向数据框添加列
问题描述
所以,我在这里看到了这个答案,这对于返回一个输出的函数是明智的。如果我的函数有多个输出怎么办?
更具体地说,假设我正在交叉引用某个 ID 上的一些数据。但是当我调用某些 ID 时,它会返回多个匹配项,我想将它们放入不同的列中。
这方面的一个示例如下所示,其中工人 3 有两个老板,0
并且2
,而工人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
解决方案
通过使用创建一个密钥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
推荐阅读
- r - 如何在 R 的 Quanteda 包中应用正则表达式以删除连续重复的标记(单词)
- php - Dart/Flutter 替代 PHP 的 resize_crop_image?
- flutter - 在下拉按钮输入框下显示错误文本
- sql - 如何使用在另一个表中预定义为外键的 id 属性填充表
- java - WFLYEJB0043:定时器的先前执行仍在进行中,跳过此重叠的计划执行
- node.js - 错误:InternalOpenIDError:无法验证断言(Steam)
- sql - 如何在表变量上添加非唯一索引
- javascript - 获取子字符串的值,然后用js中的另一个字符串替换它
- python - CUDA 运行时 API 错误 1:无效参数 (cudaMemcpy)
- kubernetes - 有人可以解释为什么我必须将外部(MetalLB、HAProxy 等)负载均衡器与裸机 kubernetes 集群一起使用吗?