更改堆叠数据帧中行的顺序

2024-10-01 04:57:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用堆叠的数据框绘制条形图。我想改变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)->;已更改所有值
我使用df.index=时间顺序->;价值保持不变。 df.reset_index(time_order)->;错误

我怎样才能改变顺序和有适当的条形图

谢谢


Tags: gttime顺序ordernum条形图iteroriginal1
2条回答

重新索引应该会起作用。这个代码给了你什么

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')

使用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

相关问题 更多 >