我正在尝试绘制带有堆叠数据框的条形图。我想像num_iter
那样更改time_order
的顺序。
time_order = ["ORIGINAL1", "OMP2","PTHREAD2", "OMP4","PTHREAD4","OMP8","PTHREAD8", "OMP16", "PTHREAD16"]
num_iter 100000000 200000000 400000000
OMP2 692.5336 1398.5305 2765.7757
OMP4 362.1932 724.6331 1447.0628
OMP8 193.0222 382.7540 759.3889
OMP16 102.5276 214.6385 450.7183
ORIGINAL1 1360.0577 2731.8207 5440.8003
PTHREAD2 697.3113 1388.6210 2779.8507
PTHREAD4 363.9816 721.6508 1432.9843
PTHREAD8 189.8591 379.8860 764.2684
PTHREAD16 124.2015 238.9460 478.0660
我使用了reindex(time_order)
->更改了所有值nan
我用df.index = time_order-> value保持不变。
df.reset_index(time_order)
->错误
如何更改订单并具有正确的条形图?
谢谢
答案 0 :(得分:0)
使用reindex
df=df.set_index('num_iter').reindex(time_order).reset_index()
df
Out[433]:
num_iter 100000000 200000000 400000000
0 ORIGINAL1 1360.0577 2731.8207 5440.8003
1 OMP2 692.5336 1398.5305 2765.7757
2 PTHREAD2 697.3113 1388.6210 2779.8507
3 OMP4 362.1932 724.6331 1447.0628
4 PTHREAD4 363.9816 721.6508 1432.9843
5 OMP8 193.0222 382.7540 759.3889
6 PTHREAD8 189.8591 379.8860 764.2684
答案 1 :(得分:0)
重新索引应该起作用。此代码给您什么?
df.reset_index(inplace=True)
order = df['num_iter'].str.extract(r'(\d+)', expand=False).astype(int).sort_values().index
df = df.reindex(order).set_index('num_iter')