• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

정렬 질문합니다.

22.06.02 10:30 작성 조회수 193

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요. Series 형태 멀티인덱스 질문입니다.
멀티 인덱스로 되어있는데
멀티 인덱스로 먼저 정렬한다음에 값을 내림차순으로 정렬할 수 있는 방법은 없을까요?
예를들면 서예/서화/미술에서로 정렬된 다음 시군구명 이름순이아니라
값으로 정렬해서 볼 수 있는 방법이 있는지 궁금합니다.
 
제가 원하는 결과는
서예/서화/미술 그다음 제일 높은 값인 강남구 129
서초구70 이런순서대로 정렬되게 할 수 있는지 궁금합니다.
 
sort_index랑 sort_values()를 요리조리 사용해봤는데 잘 안되서 질문드려요ㅠㅠ

답변 2

·

답변을 작성해보세요.

0

이연수님의 프로필

이연수

질문자

2022.06.02

안녕하세요 선생님.

 

제가 sort_index(level=0). sort_index(level=1) 다 해보았는데

 

인덱스에 대한 오름차순 내림차순이지 해당하는 값은 정렬이 안되서 질문드립니다ㅠㅠ

 

원하는 결과는 상권업종소분류명으로 정리한 다음에 시군구명 정렬이 아니라 수치에 따라 시군구명이 정렬되게 하고 싶습니다...

 

지금 하고 있는 부분은 상가정보분석하는 강의입니다.

안녕하세요.

아래와 같은 방법을 문의주신게 맞을까요?

 

df = pd.DataFrame(
{"a" : [4 ,5, 6],
"b" : [7, 8, 9],
"c" : [12, 11, 10]},
index = pd.MultiIndex.from_tuples(
[('z', 1), ('y', 3),
('x', 2)], names=['n', 'v']))

df.sort_index(level=[0, 1], ascending=[True, False]).sort_values("c", ascending=False)

이연수님의 프로필

이연수

질문자

2022.06.02

네 선생님 이렇게 나와있는 상권업종소분류명, 시군구명 오름차순으로 정렬되어있는것을

아래 표와 같이 상권업종소분류명으로는 오름차순, 값으로 내림차순으로 하는 결과를 출력해보고싶습니다.

sort_index와 sort_values()를 이용해서 해보았는데  values로 정렬되니 앞에 묶여있던 서예/서화/미술 묶여있던게 깨져서 방법을 문의드립니다.

이연수님의 프로필

이연수

질문자

2022.06.03

g.sort_values(ascending = False).sort_index(level = 0, ascending =True, sort_remaining = False)
 
sort_remaining으로 해결했습니다:)

와! 축하드립니다! :)

0

안녕하세요.

sort_index  에 보면 level을 지정할 수 있는 옵션이 있습니다.

level 을 지정하고 아래 예제처럼 여러 인덱스 값에도 설정이 가능합니다.

df = pd.DataFrame(
{"a" : [4 ,5, 6],
"b" : [7, 8, 9],
"c" : [10, 11, 12]},
index = pd.MultiIndex.from_tuples(
[('z', 1), ('y', 3),
('x', 2)], names=['n', 'v']))

# 예시
df.sort_index(level=0)

df.sort_index(level=1)

# 멀티인덱스 정렬 예시
df.sort_index(level=[0, 1], ascending=[True, False])