我有一个pandas数据框架,我想添加一个列级别来根据另一列的值将特定列(metric_a
、metric_b
、metric_c
)拆分成几个子列(parameter
)。你知道吗
当前数据格式:
participant param metric_a metric_b metric_c
0 alice a 0,700 0,912 0,341
1 alice b 0,736 0,230 0,370
2 bob a 0,886 0,364 0,995
3 bob b 0,510 0,704 0,990
4 charlie a 0,173 0,462 0,709
5 charlie b 0,085 0,950 0,807
6 david a 0,676 0,653 0,189
7 david b 0,823 0,524 0,430
需要的数据格式:
participant metric_a metric_b metric_c
a b a b a b
0 alice 0,700 0,736 0,912 0,230 0,341 0,370
1 bob 0,886 0,510 0,364 0,704 0,995 0,990
2 charlie 0,173 0,085 0,462 0,950 0,709 0,807
3 david 0,676 0,823 0,653 0,524 0,189 0,430
我试过了
df.set_index(['participant', 'param']).unstack(['param'])
这给了我一个很接近的结果,但我不满意,因为我想保持一个单级索引和participant
一个正则列。你知道吗
metric_a metric_b metric_c
param a b a b a b
participant
alice 0,700 0,736 0,912 0,230 0,341 0,370
bob 0,886 0,510 0,364 0,704 0,995 0,990
charlie 0,173 0,085 0,462 0,950 0,709 0,807
david 0,676 0,823 0,653 0,524 0,189 0,430
我有一种直觉,groupby()
或pivot_table()
函数可以完成这项工作,但无法找出方法。你知道吗
IIUC,使用^{} 和^{} ,以及^{} 指定
col_level
参数:[输出]
相关问题 更多 >
编程相关推荐