Pandas 데이터프레임을 그룹 크기 기준으로 내림차순 정렬하기
Pandas에서 데이터프레임을 그룹화할 때는 groupby() 함수를 사용합니다. 그룹화된 결과를 내림차순으로 정렬하려면 sort_values()를 활용하고, 각 그룹에 속한 요소의 개수(그룹 크기)를 구할 때는 size() 메서드를 사용합니다.
내림차순 정렬을 적용하려면 sort_values() 호출 시 다음과 같이 옵션을 지정합니다.
ascending=False
1단계: 데이터프레임 생성
먼저 예제로 사용할 Pandas 데이터프레임을 만들어 보겠습니다.
import pandas as pd
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=False)
전체 예제 코드
다음은 위 과정을 하나로 묶은 완성된 코드입니다.
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("데이터프레임:\n", dataFrame)
# Reg_Price 열 기준으로 그룹화하여 내림차순 정렬
print("\n내림차순 정렬 결과:")
print(dataFrame.groupby('Reg_Price').size().sort_values(ascending=False))
실행 결과
위 코드를 실행하면 다음과 같은 출력이 나타납니다.
데이터프레임:
Car Reg_Price
0 BMW 1000
1 Lexus 1400
2 Audi 1000
3 Mercedes 900
4 Jaguar 1700
5 Bentley 900
내림차순 정렬 결과:
Reg_Price
1000 2
900 2
1700 1
1400 1
dtype: int64
출력 결과를 보면 등록 가격이 1000인 차량과 900인 차량은 각각 2대씩 존재하고, 1700과 1400인 차량은 각각 1대씩 존재합니다. ascending=False 옵션 덕분에 그룹 크기가 큰 순서부터 내림차순으로 정렬되어 표시됩니다.