Pandas에서 DataFrame의 각 열에 포함된 고유한(unique) 값을 확인하려면 unique() 메서드를 사용하면 됩니다. 이 메서드의 인자로 원하는 열을 지정하기만 하면, 해당 열에서 중복을 제거한 값들이 순서대로 반환됩니다.
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
1. 중복 데이터가 있는 DataFrame 만들기
이번 예제에서는 학생 이름과 시험 결과를 담은 두 개의 열(Student, Result)로 구성된 DataFrame을 생성합니다. 의도적으로 중복된 레코드를 포함시켜 unique() 메서드의 동작을 확인해 보겠습니다.
dataFrame = pd.DataFrame(
{
"Student": ['Jack', 'Robin', 'Ted', 'Robin', 'Scarlett', 'Kat', 'Ted'],
"Result": ['Pass', 'Fail', 'Pass', 'Fail', 'Pass', 'Pass', 'Pass']
}
)
2. unique() 메서드로 고유한 값 추출하기
unique() 메서드에 각 열을 지정하면 해당 열의 고유한 값만 추출됩니다.
resStudent = pd.unique(dataFrame.Student)
resResult = pd.unique(dataFrame.Result)
전체 예제 코드
import pandas as pd
# DataFrame 생성
dataFrame = pd.DataFrame(
{
"Student": ['Jack', 'Robin', 'Ted', 'Robin', 'Scarlett', 'Kat', 'Ted'],
"Result": ['Pass', 'Fail', 'Pass', 'Fail', 'Pass', 'Pass', 'Pass']
}
)
print("DataFrame ...\n", dataFrame)
# 고유한 값 찾기
resStudent = pd.unique(dataFrame.Student)
resResult = pd.unique(dataFrame.Result)
print("\nStudent 열의 고유한 값:", resStudent)
print("\nResult 열의 고유한 값:", resResult)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DataFrame ...
Result Student
0 Pass Jack
1 Fail Robin
2 Pass Ted
3 Fail Robin
4 Pass Scarlett
5 Pass Kat
6 Pass Ted
Student 열의 고유한 값: ['Jack' 'Robin' 'Ted' 'Scarlett' 'Kat']
Result 열의 고유한 값: ['Pass' 'Fail']
출력 결과를 보면 Student 열에는 7개의 레코드가 있었지만 실제 고유한 값은 5개('Jack', 'Robin', 'Ted', 'Scarlett', 'Kat')뿐이며, Result 열에는 'Pass'와 'Fail' 두 가지 값만 존재하는 것을 확인할 수 있습니다.
함께 알아두면 좋은 메서드
- nunique() — 고유한 값의 개수만 필요할 때 사용합니다. 예:
dataFrame['Student'].nunique() - value_counts() — 고유한 값과 함께 각 값이 등장한 빈도까지 확인할 수 있습니다.
- drop_duplicates() — 중복된 행 전체를 제거한 새로운 DataFrame이 필요할 때 유용합니다.