您可以使用类似的解决方案
pivot_table
,但如果重复,则聚合值:
df = t1.groupby(['dose','el_num'], sort=False)['value'].mean().unstack()
print (df)
el_num 1 2 3
dose
100.0 -0.000056 -0.000056 -0.000060
5052.0 -0.000056 -0.000056 -0.000061
10107.0 -0.000056 -0.000056 -0.000061
16561.0 -0.000056 -0.000056 -0.000061
22536.0 -0.000056 -0.000056 -0.000061
25020.0 -0.000056 -0.000056 -0.000061
35123.0 -0.000056 -0.000056 -0.000061
24.0 -0.000056 -0.000056 -0.000061
168.0 -0.000055 -0.000055 -0.000061
另一个解决方案是使用
pivot
然后
reindex
按自定义顺序:
a = t1.loc[t1['el_num'] == 1,'dose']
df = t1.pivot(index='dose',columns='el_num',values='value').reindex(a)
print (df)
el_num 1 2 3
dose
100.0 -0.000056 -0.000056 -0.000060
5052.0 -0.000056 -0.000056 -0.000061
10107.0 -0.000056 -0.000056 -0.000061
16561.0 -0.000056 -0.000056 -0.000061
22536.0 -0.000056 -0.000056 -0.000061
25020.0 -0.000056 -0.000056 -0.000061
35123.0 -0.000056 -0.000056 -0.000061
24.0 -0.000056 -0.000056 -0.000061
168.0 -0.000055 -0.000055 -0.000061