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

Pandas에서 여러 열의 고유한 값 한 번에 추출하는 방법 (unique() 활용법)

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()를 적용하면, 여러 열 전체에서 고유한 값만 손쉽게 추출할 수 있습니다.
  • 활용 사례: 범주형 데이터 분석, 필터링 조건 확인, 데이터 품질 검증 등 다양한 데이터 전처리 작업에 유용하게 사용됩니다.