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

Pandas DataFrame에서 value_counts()로 항목 빈도 계산하기

Pandas에서 항목(값)의 빈도를 계산하려면 Series.value_counts() 메서드를 사용하면 됩니다. 이 메서드는 특정 열에 포함된 각 고유 값이 몇 번 등장하는지 손쉽게 세어 줍니다.

먼저 예제에 사용할 DataFrame을 생성해 보겠습니다.

# DataFrame 생성
dataFrame = pd.DataFrame({'Car': ['BMW', 'Mercedes', 'Lamborghini', 'Audi', 'Mercedes', 'Porsche', 'Lamborghini', 'BMW'],
   'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Bangalore', 'Hyderabad', 'Mumbai', 'Mumbai', 'Pune'],
   'UnitsSold': [95, 80, 80, 75, 92, 90, 95, 50]})

value_counts()로 빈도 계산하기

'Car' 열의 항목별 빈도는 다음과 같이 value_counts() 메서드를 호출하여 구할 수 있습니다.

# 'Car' 열의 빈도 계산
count1 = dataFrame['Car'].value_counts()
print("\nCar 열의 개수")
print(count1)

같은 방식으로 다른 열의 빈도도 계산할 수 있습니다. 아래는 Pandas DataFrame에서 각 열의 항목 빈도를 계산하는 전체 코드입니다.

전체 예제 코드

import pandas as pd

# DataFrame 생성
dataFrame = pd.DataFrame({'Car': ['BMW', 'Mercedes', 'Lamborghini', 'Audi', 'Mercedes', 'Porsche', 'Lamborghini', 'BMW'],
   'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Bangalore', 'Hyderabad', 'Mumbai', 'Mumbai', 'Pune'],
   'UnitsSold': [95, 80, 80, 75, 92, 90, 95, 50]})

print("Dataframe...")
print(dataFrame)

# 'Car' 열의 빈도 계산
count1 = dataFrame['Car'].value_counts()
print("\nCar 열의 개수")
print(count1)

# 'Place' 열의 빈도 계산
count2 = dataFrame['Place'].value_counts()
print("\nPlace 열의 개수")
print(count2)

# 'UnitsSold' 열의 빈도 계산
count3 = dataFrame['UnitsSold'].value_counts()
print("\nUnitsSold 열의 개수")
print(count3)

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

Dataframe...
         Car       Place  UnitsSold
0        BMW       Delhi         95
1   Mercedes   Hyderabad         80
2 Lamborghini Chandigarh         80
3       Audi   Bangalore         75
4   Mercedes   Hyderabad         92
5    Porsche     Mumbai         90
6 Lamborghini     Mumbai         95
7        BMW       Pune         50

Car 열의 개수
BMW            2
Lamborghini    2
Mercedes       2
Audi           1
Porsche        1
Name: Car, dtype: int64

Place 열의 개수
Mumbai        2
Hyderabad     2
Chandigarh    1
Pune          1
Delhi         1
Bangalore     1
Name: Place, dtype: int64

UnitsSold 열의 개수
95     2
80     2
92     1
75     1
90     1
50     1
Name: UnitsSold, dtype: int64

정리

출력 결과를 보면 'Car' 열에서는 BMW, Lamborghini, Mercedes가 각각 2번씩 등장했고, 'Place' 열에서는 Mumbai와 Hyderabad가 각각 2번씩 나타난 것을 확인할 수 있습니다. 이처럼 value_counts()는 데이터 분석 시 범주형 데이터의 분포를 파악하는 데 매우 유용한 기본 도구입니다. 참고로 반환되는 결과는 내림차순으로 정렬된 Series 형태이며, normalize=True 옵션을 사용하면 상대 빈도(비율)도 함께 구할 수 있습니다.