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

Python Pandas - 각 그룹의 행 수 계산하는 방법

Pandas에서 각 그룹에 속한 행의 개수를 세려면 group.size() 메서드를 사용하면 됩니다. 이 메서드는 groupby()로 묶은 데이터를 기준으로 각 그룹의 크기를 Series 형태로 반환합니다.

1. 라이브러리 임포트

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

2. DataFrame 생성

예제로 사용할 DataFrame을 만들어 보겠습니다.

dataFrame = pd.DataFrame({
   'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Electronics', 'Computer', 'Mobile Phone'],
   'Quantity': [10, 50, 10, 20, 25, 50],
   'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Camera', 'Graphic Card', 'Earphone']
})

3. 열을 기준으로 그룹화

groupby() 함수를 사용해 특정 열(또는 여러 열)을 기준으로 데이터를 그룹화합니다.

dataFrame.groupby(["Product Category", "Quantity"])

4. 그룹 크기 계산

이제 size()를 호출하면 각 그룹에 포함된 행의 개수를 확인할 수 있습니다.

전체 예제 코드

다음은 위 과정을 모두 포함한 완성된 코드입니다.

import pandas as pd

# DataFrame 생성
dataFrame = pd.DataFrame({
   'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Electronics', 'Computer', 'Mobile Phone'],
   'Quantity': [10, 50, 10, 20, 25, 50],
   'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Camera', 'Graphic Card', 'Earphone']
})

# DataFrame 출력
print("Dataframe...\n", dataFrame)

# 열 그룹화
new_group = dataFrame.groupby(["Product Category", "Quantity"])

# 그룹 크기 계산
new_group = new_group.size()

# 결과 출력
print("\nUpdated Dataframe...\n", new_group)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Dataframe...
    Product Category   Product Name   Quantity
0          Computer        Keyboard         10
1      Mobile Phone         Charger         50
2       Electronics        SmartTV         10
3       Electronics          Camera         20
4          Computer    Graphic Card         25
5      Mobile Phone       Earphone         50

Updated Dataframe...
Product Category  Quantity
Computer          10          1
                  25          1
Electronics       10          1
                  20          1
Mobile Phone      50          2
dtype: int64

결과 해석

출력 결과를 보면 'Product Category'와 'Quantity' 두 열을 기준으로 그룹화되었으며, 각 조합별 행 수가 표시됩니다. 예를 들어 'Mobile Phone' 카테고리에서 수량이 50인 제품은 2개('Charger'와 'Earphone')이므로 해당 그룹의 값은 2로 나타납니다. 나머지 그룹은 각각 1개의 행만 포함하고 있습니다.

참고로 size()는 NaN 값을 포함하여 개수를 세는 반면, count()는 NaN 값을 제외하고 개수를 셉니다. 상황에 맞게 적절한 메서드를 선택해 사용하시기 바랍니다.