[python] Pandas의 다중 인덱스 정렬

특정 열의 값을 기준으로 정렬하려는 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.


답변