-
Pandas와 친해지기(10분 Pandas) (2024-02-04)코딩 공부/Pandas 2024. 2. 4. 13:03
For Uploading a Blog Categoricals (2024-02-04)¶
In [ ]:df = pd.DataFrame( {"id": [1,2,3,4,5,6], "raw_grade": ["a", "b", "b", "a", "a", "e"]} ) df
id raw_grade 0 1 a 1 2 b 2 3 b 3 4 a 4 5 a 5 6 e In [ ]:df["grade"] = df["raw_grade"].astype("category") # 타입을 category로 변경하여 새로운 컬럼으로써 추가 df["grade"]
0 a 1 b 2 b 3 a 4 a 5 e Name: grade, dtype: category Categories (3, object): ['a', 'b', 'e']
In [ ]:new_categorics = ["very good", "good", "very bad"] # 변경해줄 새로운 카테고리들 df["grade"] = df["grade"].cat.rename_categories(new_categorics) # 기존 카테고리를 새로운 카테고리로 변경
In [ ]:df
id raw_grade grade 0 1 a very good 1 2 b good 2 3 b good 3 4 a very good 4 5 a very good 5 6 e very bad In [ ]:df["grade"] = df["grade"].cat.set_categories( ["very bad", "bad", "medium", "good", "very good"] ) df["grade"]
0 very good 1 good 2 good 3 very good 4 very good 5 very bad Name: grade, dtype: category Categories (5, object): ['very bad', 'bad', 'medium', 'good', 'very good']
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.cat.html#pandas.Series.cat .cat.rename_categories(new_categorics)는 기존 카테고리를 새로운 카테고리로 변경하는 것이고
.cat.set_categories(new_categorics)는 기존 카테고리를 새로운 카테고리로 변경하면서 추가로 없던 카테고리도 추가해줄 수 있다(카테고리 갯수를 늘릴 수 있다)In [ ]:df.sort_values(by="grade") # 대신 정렬의 기준은 어휘적 순서가 아닌 범주에서 매겨진 값의 순서대로 순서가 매겨짐
id raw_grade grade 5 6 e very bad 1 2 b good 2 3 b good 0 1 a very good 3 4 a very good 4 5 a very good In [ ]:display(df.groupby("grade", observed=False).size()) # size로 크기를 구할 수 있기 때문에 이 방식을 통해 각 범주에 해당되는 값의 빈도수도 확인할 수 있다 # observed=False하면 카테고리에 대해 0인 것도 표시가 된다
grade very bad 1 bad 0 medium 0 good 2 very good 3 dtype: int64
'코딩 공부 > Pandas' 카테고리의 다른 글
Pandas와 친해지기(10분 Pandas) (2024-02-07) (1) 2024.02.07 Pandas와 친해지기(10분 Pandas) (2024-02-06) (1) 2024.02.06 Pandas와 친해지기(10분 Pandas) (2024-02-05) (0) 2024.02.05 Pandas와 친해지기(10분 Pandas) (2024-02-03) (0) 2024.02.03 Pandas와 친해지기(10분 Pandas) (2024-01-26~2024-02-02) (0) 2024.02.03