본문 바로가기
파이썬(Python)

데이터프레임 데이터 정렬하기 - 다양한 옵션 활용

by 즐거운코딩 2024. 11. 18.
반응형

파이썬 데이터프레임으로 데이터를 보거나 결과 값을 다운로드 받기  위해 몇가지 정렬 옵션을 사용하면  좀 더 쉽게 데이터를 확인할 수 있습니다.

 

아래의 몇가지 방안을 참고하여 원하는 데이터 정렬방법을 골라서 사용하면 되겠습니다.

 

1.  가장 기본인 특정 열 기준 정렬하기

  • sort_values 사용하여 정렬하고자 하는 컬럼명을 지정
df = df.sort_values(by='column_name')

 

2.  여러 열을 기준으로 정렬하기

  • 컬럼을 array 로 지정
df = df.sort_values(by=['column1', 'column2'])

 

3.  내림차순 정렬하기

  • 옵션을 지정하지 않으면 오름차순
  • ascending 을 False 로 지정하면 내림차순으로 정렬
df = df.sort_values(by='column_name', ascending=False)

 

4.  여러 열 기준 다른 순서로 정렬하기

  • 각 열에 대해 ascending 의 적용 여부를 배열 순서대로 지정함 
df = df.sort_values(by=['column1', 'column2'], ascending=[True, False])

 

5.  NaN 값 위치지정

  • 특정 열의 데이터중 값이 없는 경우의 행 데이터만 모을 때 적용 
df = df.sort_values(by='column_name', na_position='first')  # NaN 값을 맨 앞으로

 

6.  원본 데이터프레임 변경

  • 정렬한 이후 데이터를 원본에 바로 적용시 inplace 사용
df.sort_values(by='column_name', inplace=True)

 

7.  인덱스 재설정

  • 정렬 이후 index값이 섞여있게되어 정렬 순대대로 재설정하기 위해 reset_index 사용
df = df.sort_values(by='column_name').reset_index(drop=True)

 

8.  사용자 정의함수로 재설정

  • key 에 적용할 기준을 설정하여 정렬
  • 아래 예시는 apply를 적용하여 'score'값을 'age' 기준에 따라 변경하여 적용하는 함수로 계산된 기준으로 정렬하는 경우임
import pandas as pd

# 예시 데이터프레임 생성
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 30, 35, 28],
    'score': [85, 92, 78, 95]
})

# 사용자 정의 정렬 함수
def custom_sort(x):
    # 나이가 30 이상이면 점수를 2배로 계산
    if x['age'] >= 30:
        return x['score'] * 2
    else:
        return x['score']

# 사용자 정의 함수를 사용하여 정렬
sorted_df = df.sort_values(by='score', key=lambda x: x.apply(custom_sort), ascending=False)

print(sorted_df)

 

상기 예시들을 참고하여 섞어서 사용하면 원하는 정렬 기준으로 데이터 순서를 변경할 수 있습니다.

반응형