Pandas로 여러 열의 고유한 값 찾기
여러 열에서 고유한(unique) 값을 추출하려면 unique() 메서드를 사용하면 됩니다. 예를 들어 직원 정보가 담긴 Pandas DataFrame에 'EmpName(직원명)'과 'Zone(지역)'이라는 두 개의 열이 있다고 가정해 보겠습니다.
실제 데이터에서는 두 명 이상의 직원이 같은 이름을 가질 수 있고, 하나의 지역에 여러 명의 직원이 소속될 수 있기 때문에 이름과 지역 값은 중복될 수밖에 없습니다. 이런 상황에서 중복을 제거한 고유한 직원 이름이나 지역 목록이 필요하다면 DataFrame의 unique()를 활용하면 간단하게 해결할 수 있습니다.
1. 라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다. 여기서는 관례적으로 pd라는 별칭(alias)으로 Pandas를 불러옵니다.
import pandas as pd
2. DataFrame 생성
다음으로 두 개의 열('EmpName', 'Zone')을 가진 DataFrame을 생성합니다.
dataFrame = pd.DataFrame(
{
"EmpName": ['John', 'Ted', 'Jacob', 'Scarlett', 'Ami', 'Ted', 'Scarlett'],
"Zone": ['North', 'South', 'South', 'East', 'West', 'East', 'North']
}
)3. 고유한 값 추출하기
'EmpName'과 'Zone' 두 열의 고유한 값을 가져오려면 pd.concat()으로 두 열을 하나로 연결한 뒤, 그 결과에 unique()를 적용하면 됩니다.
pd.concat([dataFrame['EmpName'], dataFrame['Zone']]).unique()
전체 예제 코드
아래는 위 과정을 모두 포함한 완성된 코드입니다.
import pandas as pd
# DataFrame 생성
dataFrame = pd.DataFrame(
{
"EmpName": ['John', 'Ted', 'Jacob', 'Scarlett', 'Ami', 'Ted', 'Scarlett'],
"Zone": ['North', 'South', 'South', 'East', 'West', 'East', 'North']
}
)
print("DataFrame ...\n", dataFrame)
# 여러 열에서 고유한 값 추출
print(f"\n두 열에서 고유한 값을 추출하여 합치기:\n \
{pd.concat([dataFrame['EmpName'], dataFrame['Zone']]).unique()}")실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
DataFrame ...
EmpName Zone
0 John North
1 Ted South
2 Jacob South
3 Scarlett East
4 Ami West
5 Ted East
6 Scarlett North
Fetching unique Values from the two columns and concatenate them:
['John' 'Ted' 'Jacob' 'Scarlett' 'Ami' 'North' 'South' 'East' 'West']핵심 정리
- unique() 메서드: Series 객체에서 중복을 제거한 고유한 값들을 NumPy 배열 형태로 반환합니다.
- pd.concat() 조합: 여러 열의 값을 하나의 Series로 합친 후 unique()를 적용하면, 여러 열 전체에서 고유한 값만 손쉽게 추출할 수 있습니다.
- 활용 사례: 범주형 데이터 분석, 필터링 조건 확인, 데이터 품질 검증 등 다양한 데이터 전처리 작업에 유용하게 사용됩니다.