본문 바로가기
Python/Python FAQ

Python 파이썬 판다스에서 데이터프레임을 두 개 이상의 열로 정렬하는 방법은 무엇인가요?, How to sort a dataFrame in python pandas by two or more columns?

by 베타코드 2023. 10. 29.
반응형

질문


데이터프레임에 a, bc 열이 있다고 가정하고, 데이터프레임을 열 b를 오름차순으로, 열 c를 내림차순으로 정렬하고 싶습니다. 어떻게 해야 할까요?


답변


0.17.0 릴리스 이후로, sort 메소드는 sort_values로 대체되었습니다. sort는 0.20.0 릴리스에서 완전히 제거되었습니다. 인수(및 결과)는 동일합니다:

df.sort_values(['a', 'b'], ascending=[True, False])

sort의 ascending 인수를 사용할 수 있습니다:

df.sort(['a', 'b'], ascending=[True, False])

예를 들어:

In [11]: df1 = pd.DataFrame(np.random.randint(1, 5, (10,2)), columns=['a','b'])

In [12]: df1.sort(['a', 'b'], ascending=[True, False])
Out[12]:
   a  b
2  1  4
7  1  3
1  1  2
3  1  2
4  3  2
6  4  4
0  4  3
9  4  3
5  4  1
8  4  1

@renadeen이 코멘트로 언급한대로

기본적으로 정렬은 원본에 영향을 주지 않습니다! 따라서 정렬 메소드의 결과를 변수에 할당하거나 method 호출에 inplace=True를 추가해야 합니다.

즉, df1을 정렬된 DataFrame으로 재사용하려면:

df1 = df1.sort(['a', 'b'], ascending=[True, False])

또는

df1.sort(['a', 'b'], ascending=[True, False], inplace=True)
반응형

댓글