Python Pandas 데이터프레임을 한 열 기준으로 정렬하는 방법
Python Pandas 데이터프레임을 한 열 기준으로 정렬하는 방법
sort_values() 메서드 사용
sort_values()
메서드는 데이터프레임을 하나 또는 여러 열 기준으로 정렬하는 데 사용됩니다. 다음은 sort_values()
메서드를 사용하여 데이터프레임을 한 열 기준으로 정렬하는 방법입니다.
# 라이브러리 불러오기
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Carol'], 'Age': [25, 30, 28]})
# 'Age' 열 기준으로 오름차순 정렬
df = df.sort_values('Age')
# 결과 출력
print(df)
# 출력 결과
# Name Age
# 0 Alice 25
# 2 Carol 28
# 1 Bob 30
옵션:
ascending
옵션을 사용하여 오름차순 (True) 또는 내림차순 (False) 정렬을 지정할 수 있습니다. 기본값은 True입니다.by
옵션을 사용하여 정렬할 열 이름을 지정할 수 있습니다.
예시:
# 'Age' 열 기준으로 내림차순 정렬
df = df.sort_values('Age', ascending=False)
# 'Name' 열과 'Age' 열 기준으로 정렬
df = df.sort_values(['Name', 'Age'])
sort() 메서드 사용
# 'Age' 열 기준으로 오름차순 정렬
df = df.sort('Age')
# 결과 출력
print(df)
# 출력 결과
# Name Age
# 0 Alice 25
# 2 Carol 28
# 1 Bob 30
# 'Age' 열 기준으로 내림차순 정렬
df = df.sort('Age', ascending=False)
# 'Name' 열과 'Age' 열 기준으로 정렬
df = df.sort(['Name', 'Age'])
참고:
sort_values()
메서드는sort()
메서드보다 더 많은 기능을 제공합니다.sort()
메서드는 인덱스 기준으로 정렬하기 때문에 인덱스를 변경하면 정렬 결과도 변경됩니다.
예제 코드
예제 1:
# 라이브러리 불러오기
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Carol'], 'Age': [25, 30, 28]})
# 'Age' 열 기준으로 오름차순 정렬
df = df.sort_values('Age')
# 결과 출력
print(df)
출력 결과:
Name Age
0 Alice 25
2 Carol 28
1 Bob 30
# 'Age' 열 기준으로 내림차순 정렬
df = df.sort_values('Age', ascending=False)
# 결과 출력
print(df)
Name Age
1 Bob 30
2 Carol 28
0 Alice 25
# 'Name' 열과 'Age' 열 기준으로 정렬
df = df.sort_values(['Name', 'Age'])
# 결과 출력
print(df)
Name Age
0 Alice 25
2 Carol 28
1 Bob 30
# 'Age' 열 기준으로 오름차순 정렬
df = df.sort('Age')
# 결과 출력
print(df)
Name Age
0 Alice 25
2 Carol 28
1 Bob 30
# 'Age' 열 기준으로 내림차순 정렬
df = df.sort('Age', ascending=False)
# 결과 출력
print(df)
Name Age
1 Bob 30
2 Carol 28
0 Alice 25
Python Pandas 데이터프레임을 한 열 기준으로 정렬하는 대체 방법
Numpy 함수 사용
NumPy 라이브러리의 argsort()
함수를 사용하여 데이터프레임의 특정 열을 기준으로 정렬 인덱스를 얻을 수 있습니다. 그런 다음 이 인덱스를 사용하여 데이터프레임을 정렬할 수 있습니다.
# 라이브러리 불러오기
import numpy as np
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Carol'], 'Age': [25, 30, 28]})
# 'Age' 열 기준으로 오름차순 정렬 인덱스 얻기
sorted_idx = np.argsort(df['Age'])
# 정렬 인덱스를 사용하여 데이터프레임 정렬
df = df.iloc[sorted_idx]
# 결과 출력
print(df)
Name Age
0 Alice 25
2 Carol 28
1 Bob 30
Lambda 표현식 사용
sort_values()
메서드에 Lambda 표현식을 사용하여 정렬 기준을 동적으로 지정할 수 있습니다.
# 'Age' 열 기준으로 오름차순 정렬
df = df.sort_values(by=lambda x: x['Age'])
# 결과 출력
print(df)
Name Age
0 Alice 25
2 Carol 28
1 Bob 30
.loc 속성 사용
.loc
속성을 사용하여 특정 열 값에 따라 데이터프레임 행을 선택한 후 정렬할 수 있습니다.
# 'Age' 열 기준으로 오름차순 정렬
df = df.loc[df['Age'].sort_values()]
# 결과 출력
print(df)
Name Age
0 Alice 25
2 Carol 28
1 Bob 30
.groupby() 메서드 사용
groupby()
메서드를 사용하여 특정 열 값을 기준으로 데이터프레임을 그룹화한 후 각 그룹을 정렬할 수 있습니다.
# 'Age' 열 기준으로 오름차순 정렬
df = df.groupby('Age').apply(pd.DataFrame.sort_values)
# 결과 출력
print(df)
Name Age
0 Alice 25
2 Carol 28
1 Bob 30
- 위에 설명된 대체 방법은 상황에 따라 유용할 수 있지만, 일반적으로
sort_values()
메서드를 사용하는 것이 가장 간단하고 효율적입니다.
python pandas dataframe