pandas - How to sort multi-indexed rows -


if df pandas dataframe 5-level multi-index on rows, there less stupid way achieve ordering produced this:

(df.sortlevel(3, sort_remaining=false)    .sortlevel(2, sort_remaining=false)    .sortlevel(0, sort_remaining=false)    .sortlevel(1, sort_remaining=false)    .sortlevel(4, sort_remaining=false)) 

?

nb: of following produce orderings different produced expression above:

df.sortlevel([4, 1, 0, 2, 3], sort_remaining=false) df.sortlevel([4, 1, 0, 2, 3], sort_remaining=true) df.sortlevel([3, 2, 0, 1, 4], sort_remaining=false) df.sortlevel([3, 2, 0, 1, 4], sort_remaining=true) 

yes! don't use sortlevel. use sort_index level=[4, 1, 0, 2, 3]

consider dataframe df

from string import ascii_uppercase import pandas pd  f = lambda n: np.random.choice(list(ascii_uppercase), n, false) mux = pd.multiindex.from_product([f(2) _ in range(5)]) df = pd.series(range(32), mux, name='one').to_frame() print(df)             1 t b w g u    0         p    1       m u    2         p    3     g g u    4         p    5       m u    6         p    7   v w g u    8         p    9       m u   10         p   11     g g u   12         p   13       m u   14         p   15 r b w g u   16         p   17       m u   18         p   19     g g u   20         p   21       m u   22         p   23   v w g u   24         p   25       m u   26         p   27     g g u   28         p   29       m u   30         p   31 

then sort

df.sort_index(level=[4, 1, 0, 2, 3])             1 r b g g p   21   v g g p   29   b g m p   23   v g m p   31   b w g p   17   v w g p   25   b w m p   19   v w m p   27 t b g g p    5   v g g p   13   b g m p    7   v g m p   15   b w g p    1   v w g p    9   b w m p    3   v w m p   11 r b g g u   20   v g g u   28   b g m u   22   v g m u   30   b w g u   16   v w g u   24   b w m u   18   v w m u   26 t b g g u    4   v g g u   12   b g m u    6   v g m u   14   b w g u    0   v w g u    8   b w m u    2   v w m u   10 

since sorted levels, there no need sort_remaining=false


Comments

Popular posts from this blog

c# - Update a combobox from a presenter (MVP) -

How to understand 2 main() functions after using uftrace to profile the C++ program? -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -