pandas - pandas:从现有列值创建一个新数据框
问题描述
我有一个这样的数据框;
ID code num
333_c_132 x 0
333_c_132 n36 1
998_c_134 x 0
998_c_134 n36 0
997_c_135 x 1
997_c_135 n36 0
从这里我必须创建一个新的数据框,如下所示;你可以看到一个新的列numX
形成了 unique ID
。请注意,numX
值取自num
对应的列n36
。
ID code num numX
333_c_132 x 0 1
998_c_134 x 0 0
997_c_135 x 1 0
我怎样才能只使用熊猫来做到这一点?
解决方案
您可以使用蒙版,然后在旋转后合并:
m = df['code'].eq('n36')
(df[~m].merge(df[m].set_index(['ID','code'])['num'].unstack()
,left_on='ID',right_index=True))
ID code num n36
0 333_c_132 x 0 1
2 998_c_134 x 0 0
4 997_c_135 x 1 0
推荐阅读
- java - 如何在另一个类或范围内访问 Volley 响应?
- css - 为什么浮动元素不会被稍后使用针对该特定元素的类定义的样式覆盖?
- swift - 复制 macOS Big Sur 的分段单元格样式
- sql-server - 我需要计算下个月的第 15 个工作日(不包括周末)
- c - 使用openmp加速矩阵求幂
- coldfusion - 转换 Coldfusion - 已发布的 WDDX 请求是什么样的?
- python - 如何从多语言 Excel 文本数据中删除停用词
- yosys - 通行证中技术地图调用的路径选项
- c++ - 存储最小数量的静态变量
- laravel - Vue-laravel 中的动态 CSS 有问题