В чем разница между swaplevel () и reorder_levels ()? - PullRequest
0 голосов
/ 15 января 2019

В чем разница между swaplevel() и reorder_levels() при работе с уровнями иерархического индекса в пандах?

1 Ответ

0 голосов
/ 15 января 2019

Когда есть только два уровня swaplevel и reorder_levels почти одинаковы, но когда у вашего df более 3 уровней, лично считаю reorder_levels более элегантным способом

Например:

idx = pd.MultiIndex.from_arrays([[1, 1, 2], [1, 2, 2], [3, 3, 3],[1,1,1]])
df = pd.DataFrame(columns=idx, index=[1, 2, 3, 4])

ЕСЛИ мы хотим изменить уровень ордера = [0,1,2,3] на [3,2,1,0]

С swaplevel: нужно несколько звонков

df.swaplevel(0,3,axis=1).swaplevel(1,2,axis=1)
     1          
     3          
     1    2     
     1    1    2
1  NaN  NaN  NaN
2  NaN  NaN  NaN
3  NaN  NaN  NaN
4  NaN  NaN  NaN

С reorder_levels: только один звонок

df.reorder_levels([3,2,1,0],axis=1)
     1          
     3          
     1    2     
     1    1    2
1  NaN  NaN  NaN
2  NaN  NaN  NaN
3  NaN  NaN  NaN
4  NaN  NaN  NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...