python - 如何旋转和扩展数据框列
问题描述
我有以下数据框:
name precision recall
a 0.28 0.23
b 1.00 0.00
a 0.31 0.23
b 0.25 0.00
所需的输出是:
a_precision a_recall b_precision b_recall
0.28 0.23 1.00 0.00
0.31 0.23 0.25 0.00
知道如何执行这种类似枢轴的操作吗?
在我的数据集中,我有 5 个不同的名称(a、b、c、d、e),每第六行又以名称 a、b... 开始,依此类推。除了精度和召回率之外,我还有另一列名为 f1_score。因此,该解决方案可能应该适用于不同的数据框模式。
我期待着你将如何解决这个问题。
解决方案
您可以使用pivot
一些修改数据框:
df2 = (df.assign(group=df.groupby('name').cumcount()) # get position across groups
.pivot(index='group', columns='name')
)
df2.columns = ['%s_%s' % (b,a) for (a,b) in df2.columns]
df2.sort_index(axis=1)
输出:
a_precision a_recall b_precision b_recall
group
0 0.28 0.23 1.00 0.0
1 0.31 0.23 0.25 0.0
推荐阅读
- flutter - 颤动滚动到列表中的特定项目
- python - 如何找出列表中有多少个“名字”
- spring-boot - 如何覆盖超级接口@PreAuthorize 表达式
- reactjs - 如何使用 API 并在列表中显示结果
- unity-container - 如何在 Unity Container v5.x 中启用诊断
- angular - RouterLinkActive "isActive" 始终为真
- python - 如何检查列值是否在字典中,是否用字典值替换另一个列值?
- r - 使用“Morpho”包中的“file2mesh”功能批量读取 mesh3D 对象
- asp.net - Asp .asmx Web 服务在服务器上工作,但不在客户端浏览器上
- python - 是否可以减少按钮按下和事件处理之间的延迟?