特定の列の値で並べ替えたい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
*混同しないようにpandasまずGroup1でソートし、次にCでソートしたいと考えます。
注:元々使用されていた .sort
廃止されてから0.20で削除されたため、 .sort_values
。