Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Pandas 데이터프레임 그룹화 후 그룹 크기 기준 오름차순 정렬 방법 (Python)

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로 옵션을 변경하기만 하면 됩니다.