изменить порядок строк в панелях с накоплением данных - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь нарисовать гистограмму со сложенным фреймом данных.Я хочу изменить порядок 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 -> значение остается на том же месте.df.reset_index(time_order) -> ошибка

Как мне изменить порядок и получить правильную гистограмму?

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Переиндекс должен работать.Что этот код дает вам?

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')
0 голосов
/ 17 сентября 2018

Использование 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
...