Pandas에서 데이터를 정렬하는 방법

Pandas에서 데이터를 정렬하는 방법

Pandas
Pandas에서 데이터를 정렬하는 방법
Author

gabriel yang

Published

August 29, 2024

데이터 분석에서 정렬(Sorting)은 데이터를 이해하고 분석하는 데 중요한 단계입니다. Pandas는 Python을 사용하여 데이터를 효율적으로 정렬할 수 있는 강력한 기능을 제공합니다.

이 글에서는 Pandas의 sort_values()sort_index() 메서드를 활용하여 데이터를 정렬하는 방법을 살펴보겠습니다.

1. sort_values()를 사용하여 특정 열을 기준으로 정렬하기

sort_values() 메서드는 데이터프레임의 하나 이상의 열을 기준으로 데이터를 정렬할 수 있게 해줍니다. 기본적으로 오름차순(ascending)으로 정렬되지만, 매개변수를 통해 내림차순으로 정렬할 수도 있습니다.

import pandas as pd

# 예시 데이터프레임 생성
data = {'이름': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
        '나이': [25, 32, 23, 35, 29],
        '점수': [85, 88, 91, 79, 95]}
df = pd.DataFrame(data)

# 나이를 기준으로 오름차순 정렬
df_sorted = df.sort_values(by='나이')
df_sorted
이름 나이 점수
2 Charlie 23 91
0 Alice 25 85
4 Eva 29 95
1 Bob 32 88
3 David 35 79

위 코드에서는 나이 열을 기준으로 데이터를 오름차순으로 정렬합니다. 결과는 나이가 작은 순서대로 정렬된 데이터프레임이 됩니다.

2. 내림차순으로 정렬하기

ascending=False 매개변수를 사용하여 데이터를 내림차순으로 정렬할 수 있습니다.

# 점수를 기준으로 내림차순 정렬
df_sorted_desc = df.sort_values(by='점수', ascending=False)
df_sorted_desc
이름 나이 점수
4 Eva 29 95
2 Charlie 23 91
1 Bob 32 88
0 Alice 25 85
3 David 35 79

여기서는 점수 열을 기준으로 내림차순 정렬을 수행합니다. 가장 높은 점수를 받은 사람이 맨 위에 표시됩니다.

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

sort_values() 메서드를 사용하면 여러 열을 기준으로 데이터를 정렬할 수 있습니다. 예를 들어, 먼저 나이를 기준으로 오름차순 정렬하고, 점수를 기준으로 내림차순 정렬하고 싶을 때 다음과 같이 할 수 있습니다.

# 나이 오름차순, 점수 내림차순으로 정렬
df_sorted_multiple = df.sort_values(by=['나이', '점수'], ascending=[True, False])
df_sorted_multiple
이름 나이 점수
2 Charlie 23 91
0 Alice 25 85
4 Eva 29 95
1 Bob 32 88
3 David 35 79

이 경우, 나이가 동일한 경우에만 점수를 내림차순으로 정렬합니다.

4. sort_index()를 사용하여 인덱스를 기준으로 정렬하기

sort_index() 메서드는 데이터프레임의 인덱스를 기준으로 정렬할 때 사용됩니다. 이 메서드는 인덱스를 오름차순 또는 내림차순으로 정렬할 수 있습니다.

# 인덱스를 기준으로 오름차순 정렬
df_sorted_index = df.sort_index()
df_sorted_index
이름 나이 점수
0 Alice 25 85
1 Bob 32 88
2 Charlie 23 91
3 David 35 79
4 Eva 29 95

기본적으로 sort_index()는 인덱스를 오름차순으로 정렬합니다. 만약 내림차순으로 정렬하고 싶다면, ascending=False 매개변수를 사용하면 됩니다.

# 인덱스를 기준으로 내림차순 정렬
df_sorted_index_desc = df.sort_index(ascending=False)
df_sorted_index_desc
이름 나이 점수
4 Eva 29 95
3 David 35 79
2 Charlie 23 91
1 Bob 32 88
0 Alice 25 85

5. 정렬된 데이터프레임의 인덱스 재설정하기

정렬 후 새로운 인덱스를 설정하고 싶을 때는 reset_index() 메서드를 사용할 수 있습니다. 이는 정렬된 결과에 따라 인덱스를 0부터 재설정해줍니다.

# 나이 기준으로 정렬 후 인덱스 재설정
df_sorted_reset = df.sort_values(by='나이').reset_index(drop=True)
df_sorted_reset
이름 나이 점수
0 Charlie 23 91
1 Alice 25 85
2 Eva 29 95
3 Bob 32 88
4 David 35 79

여기서 drop=True는 기존 인덱스를 새로운 열로 추가하지 않고 삭제하는 옵션입니다.

6. 정렬된 데이터프레임을 원래 상태로 되돌리기

정렬된 데이터를 원래 순서로 되돌리고 싶다면, sort_index() 메서드를 사용하여 원래의 인덱스 순서로 정렬할 수 있습니다. 처음 데이터를 불러올 때 reset_index()를 사용하지 않았다면, 인덱스는 그대로 유지되기 때문입니다.

# 원래의 인덱스 순서로 되돌리기
df_original = df_sorted.sort_index()
df_original
이름 나이 점수
0 Alice 25 85
1 Bob 32 88
2 Charlie 23 91
3 David 35 79
4 Eva 29 95

마무리

Pandas에서 데이터를 정렬하는 방법을 이해하면 데이터 분석 과정에서 중요한 통찰을 더 쉽게 얻을 수 있습니다. sort_values()sort_index()는 매우 유연하고 강력한 도구로, 데이터를 다양한 방식으로 정렬할 수 있습니다.

<h3>카테고리 다른 글</h3>
Date Title Author
Jan 1, 3000 전체 카테고리 gabriel yang
Oct 3, 2024 Pandas에서 Column 추가 및 삭제하는 방법 gabriel yang
Oct 3, 2024 Pandas 데이터프레임 mongodb에 저장하기 gabriel yang
Sep 21, 2024 Pandas에서 결측치(NaN) 처리하기 gabriel yang
Sep 11, 2024 Pandas SQL 쿼리 이용하기 gabriel yang
Aug 29, 2024 Pandas에서 데이터 형식 변경하기 gabriel yang
Aug 29, 2024 Pandas에서 인덱싱 및 슬라이싱하는 방법 gabriel yang
Aug 27, 2024 Pandas SQL 데이터베이스 읽어오기 gabriel yang
Aug 26, 2024 Pandas groupby 사용방법 gabriel yang
Aug 26, 2024 Pandas에서 두 개의 데이터프레임을 연결하기 gabriel yang
Aug 24, 2024 Pandas에서 melt를 사용해야 하는 데이터 유형과 사용 방법 gabriel yang
Aug 24, 2024 Pandas에서 pivot_table 사용하기 gabriel yang
Aug 24, 2024 Pandas에서 reset_index를 사용해야 하는 이유 gabriel yang
Aug 22, 2024 Pandas Excel과 CSV 파일을 읽어오는 방법 gabriel yang
Aug 19, 2024 Pandas DataFrame의 컬럼 이름 변경하기 gabriel yang
Aug 17, 2024 Pandas SettingWithCopyWarning 문제 해결 gabriel yang
Nov 30, 2023 Dataframe을 Dict로 생성 및 변환 gabriel yang
Nov 29, 2023 python datetime 사용법 정리 gabriel yang
Sep 14, 2023 Pandas 중복 데이터 제거하기 gabriel yang
No matching items
Back to BLOG LIST