Exploring Unique Values in DataFrame Object Columns

Page content

개요

  • pandas 데이터프레임의 여러 개체 유형(문자열) 열에서 고유 값을 조사하려면 해당 열을 선택한 다음 unique()를 적용하여 고유 값을 추출한다. 이를 위한 단계별 접근 방식은 다음과 같다.
    • 1단계 : 여러 컬럼 중에서 문자열 컬럼만 추출한다.
    • 2단계 : unique() 함수를 활용하여 unique()값만 가져온다.
    • 3단계 : 결괏값은 dictionary 형태로 담는다.

가상 데이터 생성

  • 임의의 가상 데이터를 생성한다.
import pandas as pd

data = {
    'Name': ['Evan', 'Bob', 'Evan', 'Bob'],
    'City': ['New York', 'Los Angeles', 'New York', 'SF'],
    'Job': ['Engineer', 'Engineer', 'Engineer', 'Artist'],
    'num1' : [1, 2, 3, 4]
}
df = pd.DataFrame(data)
print(df)
   Name         City       Job  num1
0  Evan     New York  Engineer     1
1   Bob  Los Angeles  Engineer     2
2  Evan     New York  Engineer     3
3   Bob           SF    Artist     4

object 컬럼 추출

# object 컬럼명 도출
object_cols = df.select_dtypes(include=['object'])
print(object_cols)
   Name         City       Job
0  Evan     New York  Engineer
1   Bob  Los Angeles  Engineer
2  Evan     New York  Engineer
3   Bob           SF    Artist

dictionary comprehension 활용한 고윳값 추출

  • dictionary comprehension을 사용한다.
    • object_cols.columns는 고유값을 찾고자 하는 열들의 이름을 포함하는 리스트이다.
    • for col in object_cols.columns: 이 반복문은 object_cols.columns에 있는 각 열 이름에 대해 반복한다.
    • df[col].unique(): 이 부분은 DataFrame df에서 col 열의 고유값들을 추출합니다. unique() 함수는 해당 열에서 중복을 제거한 값들의 배열을 반환한다.
    • {col: df[col].unique() for …}: 이 구조는 각 열 이름(col)을 키로, 해당 열의 고유값 배열을 값으로 하는 딕셔너리를 생성한다.
# 각 컬럼별 고유값만 추출한다.
unique_values = {col: df[col].unique() for col in object_cols.columns}
unique_values
{'Name': array(['Evan', 'Bob'], dtype=object),
 'City': array(['New York', 'Los Angeles', 'SF'], dtype=object),
 'Job': array(['Engineer', 'Artist'], dtype=object)}