Data Science/Pandas

데이터 정렬

작은별._. 2023. 8. 30. 19:46
728x90

데이터 정렬

 

먼저 데이터프레임의 index를 기준으로 정렬하는 방법을 알아보겠습니다. 아래의 함수를 사용합니다.

DataFrame.sort_index(axis=0, ascending=True, inplace=False)

  • axis: 0이면 행 인덱스를 기준으로, 1이면 컬럼명을 기준으로 정렬
  • ascending: True이면 오름차순, False이면 내림차순 정렬
  • inplace: True면 정렬 수행 후 None 반환(실제로 DataFrame 정렬), False이면 복사본을 만들어 정렬 수행 후 이를 반환 (원본 DataFrame은 정렬되지 않음)

아래 코드에서 확인해 보겠습니다. sklearn 라이브러리의 iris 데이터를 로드하여 데이터프레임으로 만든 후, 행을 기준으로 정렬한 결과입니다. ascending 속성을 False로 지정함으로써, 인덱스가 내림차순 정렬된 것을 볼 수 있습니다.

 


행 정렬

 

이번에는 axis 속성에 1을 넣어 열을 기준으로 정렬해 보겠습니다. 비교를 위해 이전 결과의 데이터프레임을 가져온 결과 입니다. ascending=True를 통해 열 이름으로 사전 순으로 정렬된 것을 확인할 수 있습니다.

 


열 정렬

 

이번에는 값을 기준으로 정렬을 해 보겠습니다. 값을 기준으로 정렬할 때는 기준 컬럼에 대한 정보가 반드시 필요합니다. 기준 컬럼은 여러 개가 될 수 있고, 리스트로 입력하면 앞에 있는 컬럼부터 순서대로 정렬이 이루어집니다. 아래의 함수를 사용해 확인해 보겠습니다.

 

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False)

  • by: 정렬 기준으로 사용할 컬럼의 이름 혹은 리스트
  • axis: 0이면 행 인덱스 기준, 1이면 열 기준으로 정렬
  • ascending: True이면 오름차순, False이면 내림차순 정렬
  • inplace: True이면 제자리에서 수행 후 None 반환, False이면 복사본을 만들어 정렬 수행 후 이를 반환

 

먼저 아래와 같이 하나의 컬럼을 이용하여 정렬해 보겠습니다. petal length 컬럼을 기준으로 오름차순 정렬이 되었음을 확인할 수 있습니다.

 


one-column sorting

 

다음으로는 여러 개 컬럼을 이용하여 정렬해 보겠습니다. 아래와 같이 리스트의 1번째 원소를 기준으로 먼저 오름차순 정렬이 이루어지고, 그 후 2번째 원소를 기준으로 오름차순 정렬이 이루어진 것을 확인할 수 있습니다.

 


two-columns sorting

 

아래와 같이 ascending 인자에 리스트로 넣어줌으로써, 각 리스트 원소에 대하여 다른 기준으로 정렬을 수행할 수도 있습니다. (petal width는 오름차순, sepal length는 내림차순 정렬: 즉,  petal width 값이 같다면 sepal length 값이 큰 데이터가 위로 오도록 정렬됩니다.)

 


two-columns sorting

 

 

 

 

출처

[데싸라면, 빨간색 물고기, 자투리코드] 파이썬 한권으로 끝내기: 데이터분석전문가(ADP) + 빅데이터분석기사 실기대비, 시대고시기획(2022), p40-41)

728x90
반응형