반응형
질문
데이터프레임에 a
, b
및 c
열이 있다고 가정하고, 데이터프레임을 열 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)
반응형
댓글