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 값을 제외하고 개수를 셉니다. 상황에 맞게 적절한 메서드를 선택해 사용하시기 바랍니다.