Pandas DataFrame에서 특정 열(column)의 고유한 값(unique values)을 추출하려면 unique() 메서드를 사용하고, 고유한 값의 개수를 확인하려면 nunique() 메서드를 사용합니다. 이 두 메서드는 데이터 분석 시 중복 데이터를 파악하거나 범주형 변수의 종류를 확인할 때 매우 유용하게 활용됩니다.
1. 라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
2. DataFrame 생성
이번 예제에서는 중복 값이 포함된 3개의 열을 가진 DataFrame을 생성합니다. 'Car' 열에는 'BMW'와 'Lexus'가 각각 두 번씩 등장하는 것을 볼 수 있습니다.
dataFrame = pd.DataFrame(
{
"Car": ['BMW', 'Audi', 'BMW', 'Lexus', 'Tesla', 'Lexus', 'Mustang'],
"Place": ['Delhi', 'Bangalore', 'Hyderabad', 'Chandigarh', 'Pune', 'Mumbai', 'Jaipur'],
"Units": [100, 150, 50, 110, 90, 120, 80]
}
)
3. 고유한 값 추출 및 개수 세기
unique()로 열의 고유한 값들을 가져오고, nunique()로 고유한 값의 개수를 계산합니다.
print("\n열에서 추출한 고유한 값 ...\n", dataFrame['Car'].unique())
print("\n열에서 고유한 값의 개수 ...\n", dataFrame['Car'].nunique())
전체 예제 코드
지금까지 설명한 내용을 하나로 합친 전체 코드는 다음과 같습니다.
import pandas as pd
# DataFrame 생성
dataFrame = pd.DataFrame(
{
"Car": ['BMW', 'Audi', 'BMW', 'Lexus', 'Tesla', 'Lexus', 'Mustang'],
"Place": ['Delhi', 'Bangalore', 'Hyderabad', 'Chandigarh', 'Pune', 'Mumbai', 'Jaipur'],
"Units": [100, 150, 50, 110, 90, 120, 80]
}
)
print("DataFrame ...\n", dataFrame)
# 열에서 고유한 값 추출
print("\n열에서 추출한 고유한 값 ...\n", dataFrame['Car'].unique())
print("\n열에서 고유한 값의 개수 ...\n", dataFrame['Car'].nunique())
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DataFrame ...
Car Place Units
0 BMW Delhi 100
1 Audi Bangalore 150
2 BMW Hyderabad 50
3 Lexus Chandigarh 110
4 Tesla Pune 90
5 Lexus Mumbai 120
6 Mustang Jaipur 80
열에서 추출한 고유한 값 ...
['BMW' 'Audi' 'Lexus' 'Tesla' 'Mustang']
열에서 고유한 값의 개수 ...
5
결과 해석
'Car' 열에는 총 7개의 행이 있지만, 'BMW'와 'Lexus'가 각각 두 번씩 중복되어 나타나므로 실제 고유한 값은 BMW, Audi, Lexus, Tesla, Mustang의 5개입니다. 따라서 unique()는 중복이 제거된 값들의 배열을 반환하고, nunique()는 그 개수인 5를 반환합니다.
참고로, value_counts() 메서드를 함께 사용하면 각 고유한 값별로 몇 번 등장했는지 빈도수까지 확인할 수 있어 데이터 탐색에 더욱 유용합니다.