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