我有一个看起来像这样的多索引数据框
Pool Lab_ID Units ... CV% CV SEM
Analysis_panel analyte ...
OXID F2A12I A M ng/mL ... 6.111037 0.061110 0.098823
F2A12I B M ng/mL ... 3.620595 0.036206 0.050259
F2A23D A N ng/mL ... 6.631863 0.066319 0.020186
F2A23D B N ng/mL ... 6.150949 0.061509 0.021566
F2A8IP B M ng/mL ... 2.227108 0.022271 0.002000
... ... ... ... ... ... ...
VOCs HPMA B N pmol/mL ... 4.444958 0.044450 27.313001
HPMA2 A N pmol/mL ... 14.437254 0.144373 16.838646
HPMA2 B M pmol/mL ... 15.010317 0.150103 21.588423
SPMA A M pmol/mL ... 12.959157 0.129592 0.041438
SPMA B N pmol/mL ... 11.961421 0.119614 0.054991
[276 rows x 11 columns]
我想获取Lab_ID列并将其设置为另一种列索引-我希望我的最终df的结构如下
M N
Pool Units ... SEM Pool Units ... SEM
Analysis_panel analyte
OXID F2A12I
F2A12I
F2A23D
F2A23D
F2A8IP
... ... ... ... ... ... ...
VOCs HPMA
HPMA2
HPMA2
SPMA
SPMA
有一种简单的方法吗?
答案 0 :(得分:0)
这将起作用,尽管不会产生确切的预期输出:
(df.set_index(['Pool', 'Lab_ID'], append=True)
.unstack('Lab_ID')
)
输出:
Units CV% \
Lab_ID M N M N
Analysis_panel analyte Pool
OXID F2A12I A ng/mL NaN 6111037.0 NaN
B ng/mL NaN 3620595.0 NaN
F2A23D A NaN ng/mL NaN 6631863.0
B NaN ng/mL NaN 6150949.0
F2A8IP B ng/mL NaN 2227108.0 NaN
VOCs HPMA B NaN pmol/mL NaN 4444958.0
HPMA2 A NaN pmol/mL NaN 14437254.0
B pmol/mL NaN 15010317.0 NaN
SPMA A pmol/mL NaN 12959157.0 NaN
B NaN pmol/mL NaN 11961421.0
CV SEM
Lab_ID M N M N
Analysis_panel analyte Pool
OXID F2A12I A 61110.0 NaN 98823.0 NaN
B 36206.0 NaN 50259.0 NaN
F2A23D A NaN 66319.0 NaN 20186.0
B NaN 61509.0 NaN 21566.0
F2A8IP B 22271.0 NaN 2000.0 NaN
VOCs HPMA B NaN 44450.0 NaN 27313001.0
HPMA2 A NaN 144373.0 NaN 16838646.0
B 150103.0 NaN 21588423.0 NaN
SPMA A 129592.0 NaN 41438.0 NaN
B NaN 119614.0 NaN 54991.0