更改堆叠数据框熊猫中的行顺序

时间:2018-09-17 15:33:38

标签: python pandas plot bar-chart

我正在尝试绘制带有堆叠数据框的条形图。我想像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)->错误

如何更改订单并具有正确的条形图?

谢谢

2 个答案:

答案 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')
相关问题