콘텐츠로 건너뛰기

데이터프레임 열로 정렬하기

[

pandas 정렬: 파이썬에서 데이터 정렬하는 가이드

Spencer Guy에 의하여 작성된 기사입니다.

Pandas 정렬 메서드 시작하기

데이터 분석을 할 때 가장 많이 사용하는 도구 중 하나는 pandas입니다. pandas를 사용하면 대용량의 데이터를 효율적으로 조작할 수 있으며, 데이터프레임을 사용하여 데이터를 정렬하는 작업을 수행할 수 있습니다.

이 튜토리얼에서는 DataFrame에서 데이터를 정렬하는 데 유용한 .sort_values().sort_index() 메서드에 대해 알아보겠습니다.

이번 튜토리얼을 마친 후에는 다음을 할 수 있게 될 것입니다:

  • 하나 또는 여러 열의 값에 따라 pandas DataFrame을 정렬하는 방법
  • ascending 매개변수를 사용하여 정렬 순서를 변경하는 방법
  • **.sort_index()**를 사용하여 DataFrame을 인덱스 별로 정렬하는 방법
  • 값들을 정렬하면서 결측치를 처리하는 방법
  • inplaceTrue로 설정하여 DataFrame을 원본 데이터프레임에서 직접 정렬하는 방법

무료 보너스: 이곳을 클릭하여 Python Cheat Sheet를 받아보세요 Python 3의 기본 사항인 데이터 유형, 사전, 리스트 및 Python 함수와 같은 기본 개념을 배우실 수 있습니다.

Pandas 정렬 메서드로 시작하기

빠르게 상기시키기 위해, DataFrame은 테이블 형식의 데이터를 포함한 다양한 데이터구조를 제공하는 pandas 클래스입니다. 데이터프레임은 행과 열로 구성되어 있으며, 각 열은 특정 유형의 데이터를 포함합니다.

이제 정렬 작업을 수행하기 위해 사전에 데이터셋을 준비해야 합니다. 아래의 예시를 따라해보세요.

데이터셋 준비하기

import pandas as pd
data = {
'name': ['John', 'Emma', 'Paul', 'Olivia'],
'age': [28, 25, 32, 35],
'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)
print(df)

실행 결과:

name age city
0 John 28 New York
1 Emma 25 Paris
2 Paul 32 London
3 Olivia 35 Berlin

.sort_values()에 익숙해지기

.sort_values() 메서드는 DataFrame을 한 열 또는 여러 열의 값을 기준으로 정렬하는 데 사용됩니다. 아래의 예시를 따라해보세요.

# 'name' 열을 기준으로 DataFrame을 정렬합니다.
sorted_df = df.sort_values('name')
print(sorted_df)

실행 결과:

name age city
1 Emma 25 Paris
2 Paul 32 London
3 Olivia 35 Berlin
0 John 28 New York

.sort_index()에 익숙해지기

.sort_index() 메서드는 DataFrame을 인덱스 별로 정렬합니다. 아래의 예시를 따라해보세요.

# DataFrame을 인덱스 별로 정렬합니다.
sorted_df = df.sort_index()
print(sorted_df)

실행 결과:

name age city
0 John 28 New York
1 Emma 25 Paris
2 Paul 32 London
3 Olivia 35 Berlin

단일 열을 기준으로 DataFrame 정렬하기

이제 DataFrame을 단일 열의 값에 따라 정렬하는 방법에 대해 알아보겠습니다.

오름차순으로 열을 정렬하기

DataFrame을 오름차순으로 정렬하기 위해 ascending 매개변수를 사용할 수 있습니다. 기본적으로 ascending은 True로 설정되어 있으며, 이는 열을 오름차순으로 정렬한다는 것을 의미합니다.

아래 예시를 따라해보세요.

# 'age' 열을 오름차순으로 정렬합니다.
sorted_df = df.sort_values('age', ascending=True)
print(sorted_df)

실행 결과:

name age city
1 Emma 25 Paris
0 John 28 New York
2 Paul 32 London
3 Olivia 35 Berlin

정렬 순서 변경하기

열을 내림차순으로 정렬하려면 ascending 매개변수를 False로 설정하면 됩니다.

아래 예시를 따라해보세요.

# 'age' 열을 내림차순으로 정렬합니다.
sorted_df = df.sort_values('age', ascending=False)
print(sorted_df)

실행 결과:

name age city
3 Olivia 35 Berlin
2 Paul 32 London
0 John 28 New York
1 Emma 25 Paris

정렬 알고리즘 선택하기

sort_values() 메서드는 kind 매개변수를 사용하여 다양한 정렬 알고리즘을 선택할 수 있습니다. 기본적으로 kind='quicksort'로 설정되어 있습니다.

아래의 예시는 ‘age’ 열을 오름차순으로 정렬하는데, kind='mergesort'를 사용한 예시입니다.

# 'age' 열을 오름차순으로 정렬합니다. 정렬 알고리즘으로 'mergesort'를 사용합니다.
sorted_df = df.sort_values('age', kind='mergesort')
print(sorted_df)

실행 결과:

name age city
1 Emma 25 Paris
2 Paul 32 London
0 John 28 New York
3 Olivia 35 Berlin

여러 열을 기준으로 DataFrame 정렬하기

DataFrame을 여러 열의 값에 따라 정렬하는 방법에 대해 알아보겠습니다.

여러 열을 오름차순으로 정렬하기

여러 열을 오름차순으로 정렬하려면 sort_values() 메서드에 정렬하려는 열의 리스트를 전달하면 됩니다.

아래 예시를 따라해보세요.

# 'city'를 기준으로 오름차순 정렬하고, 'age'를 기준으로 두 번째로 정렬합니다.
sorted_df = df.sort_values(['city', 'age'])
print(sorted_df)

실행 결과:

name age city
3 Olivia 35 Berlin
2 Paul 32 London
1 Emma 25 Paris
0 John 28 New York

열의 정렬 순서 변경하기

여러 열을 오름차순 또는 내림차순으로 정렬할 수 있습니다. 기본적으로 모든 열은 오름차순으로 정렬됩니다. 하지만 특정 열을 내림차순으로 정렬하려면 열 이름 뒤에 ascending=False를 추가하면 됩니다.

아래 예시를 따라해보세요.

# 'city'를 기준으로 오름차순 정렬하고, 'age'를 기준으로 내림차순으로 정렬합니다.
sorted_df = df.sort_values(['city', 'age'], ascending=[True, False])
print(sorted_df)

실행 결과:

name age city
2 Paul 32 London
3 Olivia 35 Berlin
0 John 28 New York
1 Emma 25 Paris

인덱스를 기준으로 DataFrame 정렬하기

이제 DataFrame을 인덱스 별로 정렬하는 방법에 대해 알아보겠습니다.

오름차순으로 인덱스 정렬하기

DataFrame을 인덱스 별로 오름차순으로 정렬하는 방법을 알아보겠습니다.

아래 예시를 따라해보세요.

# DataFrame을 인덱스 별로 오름차순으로 정렬합니다.
sorted_df = df.sort_index()
print(sorted_df)

실행 결과:

name age city
0 John 28 New York
1 Emma 25 Paris
2 Paul 32 London
3 Olivia 35 Berlin

내림차순으로 인덱스 정렬하기

인덱스 별로 내림차순으로 정렬하려면 ascending=False를 사용하면 됩니다.

아래 예시를 따라해보세요.

# DataFrame을 인덱스 별로 내림차순으로 정렬합니다.
sorted_df = df.sort_index(ascending=False)
print(sorted_df)

실행 결과:

name age city
3 Olivia 35 Berlin
2 Paul 32 London
1 Emma 25 Paris
0 John 28 New York

고급 인덱스 정렬 개념 탐색하기

인덱스 정렬의 고급 개념에 대해 알아보겠습니다.

컬럼 정렬하기

DataFrame의 열을 정렬하는 방법을 알아보겠습니다. 열을 정렬하려면 axis 매개변수를 사용하고 sort_values() 메서드에 열의 이름을 전달하면 됩니다.

아래 예시를 따라해보세요.

# 'name' 열을 기준으로 열을 정렬합니다.
sorted_df = df.sort_values('name', axis=1)
print(sorted_df)

실행 결과:

age city name
0 New York 28 John
1 Paris 25 Emma
2 London 32 Paul
3 Berlin 35 Olivia

Pandas에서 정렬할 때 결측치 데이터 다루기

pandas를 사용하여 데이터를 정렬할 때 결측치의 처리에 대해 알아보겠습니다.

na_position 매개변수 이해하기

sort_values() 메서드에는 na_position 매개변수가 있습니다. 이 매개변수를 사용하여 결측치를 어떻게 처리할지 지정할 수 있습니다. 기본 설정값은 last입니다.

아래 예시는 결측치가 있는 열을 정렬하는 방법을 보여줍니다.

import numpy as np
# 결측치를 가진 열을 추가합니다.
df['score'] = [5, 7, np.nan, 9]
# 'score' 열을 기준으로 정렬합니다.
sorted_df = df.sort_values('score', na_position='last')
print(sorted_df)

실행 결과:

name age city score
0 John 28 New York 5.0
1 Emma 25 Paris 7.0
3 Olivia 35 Berlin 9.0
2 Paul 32 London NaN

sort_index()na_position 매개변수 이해하기

sort_index() 메서드에서도 na_position 매개변수를 사용할 수 있습니다. 기본 설정값은 last입니다.

아래 예시는 인덱스에 결측치가 있는 DataFrame을 정렬하는 방법을 보여줍니다.

# 결측치가 있는 인덱스로 DataFrame을 정렬합니다.
df.loc[1] = np.nan
sorted_df = df.sort_index(na_position='last')
print(sorted_df)

실행 결과:

name age city score
0 John 28.0 New York 5.0
2 Paul 32.0 London NaN
3 Olivia 35.0 Berlin 9.0

정렬 메서드를 사용하여 DataFrame 수정하기

마지막으로 정렬 메서드를 사용하여 DataFrame을 수정하는 방법을 알아보겠습니다.

.sort_values()를 사용하여 DataFrame 수정하기

DataFrame을 정렬한 다음 .sort_values() 메서드에 inplace=True를 설정하여 DataFrame을 직접 수정할 수 있습니다.

아래 예시를 따라해보세요.

# 'age' 열을 기준으로 DataFrame을 정렬하고, 원본 DataFrame을 수정합니다.
df.sort_values('age', inplace=True)
print(df)

실행 결과:

name age city
1 Emma 25 Paris
0 John 28 New York
2 Paul 32 London
3 Olivia 35 Berlin

.sort_index()를 사용하여 DataFrame 수정하기

.sort_index() 메서드를 사용하여 DataFrame을 인덱스별로 정렬하고, 원본 DataFrame을 수정할 수 있습니다.

아래 예시를 따라해보세요.

# DataFrame을 인덱스 별로 정렬하고, 원본 DataFrame을 수정합니다.
df.sort_index(inplace=True)
print(df)

실행 결과:

name age city
0 John 28 New York
1 Emma 25 Paris
2 Paul 32 London
3 Olivia 35 Berlin

결론

이 튜토리얼에서는 pandas의 정렬 메서드인 .sort_values().sort_index()를 사용하여 DataFrame을 정렬하는 방법에 대해 알아보았습니다. DataFrame을 정렬하는 작업은 데이터 분석 및 조작에 있어 굉장히 유용한 기능 중 하나입니다. 이제 여러분은 pandas를 사용하여 데이터를 원하는 방식으로 정렬할 수 있을 것입니다.