1. ホーム
  2. python

[解決済み] Pandasのマルチインデックスソーティング

2023-01-17 19:57:40

質問

pandas dfに複数のインデックスを持つデータセットがあり、特定のカラムの値でソートしたいと思っています。 私はsortindexとsortlevelを使用してみましたが、私が探している結果を得ることができませんでした。 私のデータセットは次のようになります。

    Group1    Group2
    A B C     A B C
1   1 0 3     2 5 7
2   5 6 9     1 0 0
3   7 0 2     0 3 5 

グループ1のC列で全データとインデックスを降順でソートしたいので、結果は以下のようになります。

    Group1    Group2
    A B C     A B C
 2  5 6 9     1 0 0
 1  1 0 3     2 5 7
 3  7 0 2     0 3 5 

私のデータがある構造でこのソートは可能でしょうか、それともGroup1をインデックス側にスワップすべきでしょうか?

どのように解決するのですか?

MultiIndexでソートする場合、リスト*の中にカラムを記述したタプルを含める必要があります。

In [11]: df.sort_values([('Group1', 'C')], ascending=False)
Out[11]: 
  Group1       Group2      
       A  B  C      A  B  C
2      5  6  9      1  0  0
1      1  0  3      2  5  7
3      7  0  2      0  3  5

* のように、最初にGroup1でソートし、次にCでソートするようにパンダを混乱させないようにするためです。


注)本来は .sort を使用していましたが、0.20 で非推奨となり削除され、代わりに .sort_values .