データフレームのマルチインデックスに追加し、新しいインデックスカラムの並べ替え順序で再スタックする方法を教えてください。データフレームのマルチインデックスに追加し、パンダで再スタック
私は次のように図書館で本を表し、マルチインデックス['section_id','last_checkout']
とのデータフレームを持っている:
book_id author_id
section_id last_checkout
4 2016-04-04 07:01:59.223 1 10
2016-04-04 07:01:59.223 2 11
2016-04-04 07:01:59.223 3 12
2016-04-04 07:01:59.233 4 13
2016-04-04 07:01:59.247 5 13
2016-04-04 07:01:59.253 6 14
5 2016-04-04 07:01:59.253 10 15
2016-04-04 07:01:59.268 11 10
そう冊6
から1
はセクション4
です。 Iインデックスに別の列、pd.Series({'floor': [1,1,2,1,2,3,4,1]})
を追加する予定:この後
book_id author_id
section_id floor last_checkout
4 1 2016-04-04 07:01:59.223 1 10
1 2016-04-04 07:01:59.223 2 11
2 2016-04-04 07:01:59.223 3 12
1 2016-04-04 07:01:59.233 4 13
2 2016-04-04 07:01:59.247 5 13
3 2016-04-04 07:01:59.253 6 14
5 4 2016-04-04 07:01:59.253 10 15
1 2016-04-04 07:01:59.268 11 10
、私はすでに存在して順序を維持しながら、フロア別の行でスタックしたい:
book_id author_id
section_id floor last_checkout
4 1 2016-04-04 07:01:59.223 1 10
1 2016-04-04 07:01:59.223 2 11
1 2016-04-04 07:01:59.233 4 13
5 1 2016-04-04 07:01:59.268 11 10
4 2 2016-04-04 07:01:59.223 3 12
2 2016-04-04 07:01:59.247 5 13
3 2016-04-04 07:01:59.253 6 14
5 4 2016-04-04 07:01:59.253 10 15
私はそれがあるべきと思いましたかなりシンプルだが、API、私は失敗したこれらの様々な順列を試した後、非直観的と思われる:ここで
# Cannot append equal length series to multi-index
#1: df.index = df.index.append(series)
# Underlying mergesort does not 'stack' the groups in original ordering
#2: df['floor'] = series
#3: df.sort_values('floor', ascending=True)
#4: df.sort_values(['floor', 'last_checkout'], ascending=[True,True])