Python으로 범주형 데이터 다루기
Kasey Jones
Research Data Scientist
1) 불일치 값: "Ham", "ham", " Ham"
2) 오탈자 값: "Ham", "Hma"
3) 잘못된 dtype: df['Our Column'].dtype
dtype('O')
다음 중 하나 사용:
Series.cat.categoriesSeries.value_counts()dogs["get_along_cats"].value_counts()
No 2503
yes 275
no 156
Noo 2
NO 1
공백 제거: .strip()
dogs["get_along_cats"] = dogs["get_along_cats"].str.strip()
빈도 확인:
dogs["get_along_cats"].value_counts()
No 2503
yes 275
no 156
Noo 2
NO 1 # < ---- 더 이상 공백 없음
대소문자 통일: .title(), .upper(), .lower()
dogs["get_along_cats"] = dogs["get_along_cats"].str.title()
빈도 확인:
dogs["get_along_cats"].value_counts()
No 2660
Yes 275
Noo 2
.replace()로 오탈자 수정
replace_map = {"Noo": "No"}
dogs["get_along_cats"].replace(replace_map, inplace=True)
빈도 확인:
dogs["get_along_cats"].value_counts()
No 2662
Yes 275
dtype 확인
dogs["get_along_cats"].dtype
dtype('O')
다시 범주형으로 변환
dogs["get_along_cats"] = dogs["get_along_cats"].astype("category")
문자열 검색
dogs["breed"].str.contains("Shepherd", regex=False)
0 False
1 False
2 False
...
2935 False
2936 True
범주로 Series 값 접근
dogs.loc[dogs["get_along_cats"] == "Yes", "size"]
Series 값 개수:
dogs.loc[dogs["get_along_cats"] == "Yes", "size"].value_counts(sort=False)
small 69
medium 169
large 37
Python으로 범주형 데이터 다루기