Pandas 데이터프레임을 그룹 크기별로 오름차순 정렬하는 방법
Pandas에서 데이터프레임을 그룹화하려면 groupby() 함수를 사용합니다. 그룹화된 결과를 오름차순으로 정렬하려면 sort_values() 함수를 함께 활용하면 되며, 각 그룹의 크기(데이터 개수)는 size() 메서드로 확인할 수 있습니다.
오름차순 정렬을 적용하려면 sort_values()에 다음 옵션을 지정합니다.
ascending=True
1단계: 데이터프레임 생성
먼저 예제로 사용할 Pandas 데이터프레임을 만들어 보겠습니다.
dataFrame = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
"Reg_Price": [1000, 1400, 1000, 900, 1700, 900]
}
)2단계: Reg_Price 기준으로 그룹화 후 오름차순 정렬
이제 Reg_Price 열을 기준으로 데이터를 그룹화하고, 그룹 크기를 오름차순으로 정렬합니다.
dataFrame.groupby('Reg_Price').size().sort_values(ascending=True)전체 예제 코드
import pandas as pd
# Reg_Price 열을 포함하는 데이터프레임 생성
dataFrame = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
"Reg_Price": [1000, 1400, 1000, 900, 1700, 900]
}
)
print("DataFrame...\n", dataFrame)
# Reg_Price 열 기준으로 그룹화한 뒤 오름차순 정렬
print("\nSorted in Ascending order...")
print(dataFrame.groupby('Reg_Price').size().sort_values(ascending=True))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DataFrame...
Car Reg_Price
0 BMW 1000
1 Lexus 1400
2 Audi 1000
3 Mercedes 900
4 Jaguar 1700
5 Bentley 900
Sorted in Ascending order...
Reg_Price
1400 1
1700 1
900 2
1000 2
dtype: int64결과 해석
출력 결과를 보면 Reg_Price 값이 1400과 1700인 그룹은 각각 1개의 차량만 포함되어 있고, 900과 1000인 그룹에는 각각 2개의 차량이 속해 있는 것을 확인할 수 있습니다. sort_values(ascending=True) 덕분에 그룹 크기가 작은 순서부터 큰 순서대로 정렬된 것을 알 수 있습니다. 만약 내림차순으로 정렬하고 싶다면 ascending=False로 옵션을 변경하기만 하면 됩니다.