2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

파이썬 pandas로 범주형 변수를 생성하는 방법은 무엇인가요?

_____
Q1: 파이썬 pandas에서 범주형 변수(categorical variable)란 무엇인가요?
A1: 판다스의 범주형 변수는 고정된 가능한 값(카테고리)을 가지는 데이터 타입입니다. 메모리 사용이 효율적이고, 카테고리별 그룹핑이나 비교 작업 시 성능이 향상됩니다.

---

Q2: pandas에서 범주형 변수를 생성하는 기본 방법은 무엇인가요?
A2: `pd.Categorical()` 함수를 사용하거나, DataFrame의 열을 `.astype('category')`로 타입 변환하여 생성할 수 있습니다.

```python
import pandas as pd

리스트 데이터를 범주형으로 변환
data = ['apple', 'banana', 'apple', 'orange']
cat_var = pd.Categorical(data)

혹은 DataFrame 컬럼 변환
df = pd.DataFrame({'fruits': data})
df['fruits'] = df['fruits'].astype('category')
```

---

Q3: 범주형 변수를 만들 때 카테고리 목록을 명시할 수 있나요?
A3: 네, `pd.Categorical()` 사용 시 `categories` 파라미터로 고정된 카테고리 목록을 직접 지정할 수 있습니다.

```python
cat_var = pd.Categorical(data, categories=['apple', 'banana', 'orange', 'grape'])
```

---

Q4: 범주형 변수의 순서(ordered)를 지정하는 방법은?
A4: `ordered=True` 옵션을 사용하면 카테고리의 순서를 지정할 수 있습니다. 주로 서열형 데이터에 사용됩니다.

```python
cat_var = pd.Categorical(data, categories=['low', 'medium', 'high'], ordered=True)
```

---

Q5: 기존 DataFrame 컬럼을 범주형으로 변경하는 간단한 방법은?
A5: `.astype('category')` 메서드를 사용하면 간단히 변환됩니다.

```python
df['column_name'] = df['column_name'].astype('category')
```

---

Q6: 문자열 데이터가 아닌 숫자 데이터도 범주형으로 만들 수 있나요?
A6: 네, 숫자 데이터도 범주형으로 변환할 수 있으며, 범주별 구분을 위해 유용합니다.

```python
df['num_cat'] = df['num_column'].astype('category')
```

---

Q7: 범주형 변수의 카테고리 목록을 확인하는 방법은?
A7: `.cat.categories` 속성을 통해 확인할 수 있습니다.

```python
df['fruits'].cat.categories
```

---

Q8: 범주형 변수의 순서 여부 확인은?
A8: `.cat.ordered` 속성을 확인하면 순서형인지 알 수 있습니다.

```python
df['fruits'].cat.ordered True 또는 False 반환
```

---

Q9: 새로운 카테고리를 추가하려면 어떻게 하나요?
A9: `.cat.add_categories()` 메서드로 기존 카테고리에 새 범주를 추가할 수 있습니다.

```python
df['fruits'] = df['fruits'].cat.add_categories(['grape'])
```

---

Q10: 범주형 변수의 장점은 무엇인가요?
A10: 메모리 절약, 명확한 카테고리 값 지정, 데이터 일관성 유지, 그룹 연산 시 속도 향상 등입니다.

---

요약:
- `pd.Categorical()` 함수를 사용하거나 `.astype('category')`로 쉽게 생성 가능
- 카테고리 목록과 순서 지정 가능
- `.cat` accessor로 카테고리 정보 조회 및 조작 가능

이 방법들을 활용하면 판다스에서 효율적으로 범주형 변수를 생성 및 관리할 수 있습니다.
Pandas는 Python에서 데이터를 다루는 데 매우 유용한 라이브러리입니다.

특히 범주형 변수를 다루는 데 있어 몇 가지 방법을 제공합니다.

범주형 변수는 제한된 수의 고유한 값을 가진 데이터를 의미하며, 이들은 일반적으로 메모리 사용을 줄이고 데이터 분석 성능을 향상시키는 데 도움을 줍니다.

아래에 범주형 변수를 생성하는 방법에 대해 설명하겠습니다.

1. `pd.Series`를 사용하여 범주형 변수 생성하기 Pandas의 `pd.Series`를 사용하여 직접 범주형 변수를 만들 수 있습니다.

`CategoricalDtype`을 활용하여 범주를 명시할 수 있습니다.

```python import pandas as pd 범주형 데이터 정의 categories = ["low", "medium", "high"] data = ["medium", "low", "high", "medium", "high"] 범주형 변수 생성 cat_data = pd.Series(data, dtype="category") cat_data = cat_data.astype(pd.CategoricalDtype(categories=categories, ordered=True)) print(cat_data) ```

2. DataFrame에서 범주형 변수로 변환하기 이미 존재하는 DataFrame의 열을 범주형으로 변환할 수도 있습니다.

```python DataFrame 생성 df = pd.DataFrame({ 'scores': ["medium", "low", "high", "medium", "high"] }) 'scores' 열을 범주형으로 변환 df['scores'] = df['scores'].astype('category') print(df) print(df['scores'].cat.categories) 범주 확인 ```

3. 범주형 데이터와 레이블 인코딩 범주형 변수를 수치형 데이터로 변환할 필요가 있을 때, Pandas는 `cat.codes`를 통해 쉽게 변환할 수 있습니다.

```python 레이블 인코딩 df['score_codes'] = df['scores'].cat.codes print(df) ```

4. 명명된 범주형 변수 생성하기 명명된 범주형 변수를 만들고, 특정 순서를 지정할 수도 있습니다.

```python 순서가 있는 범주형 변수를 생성 ordered_categories = pd.CategoricalDtype(categories=["low", "medium", "high"], ordered=True) df['scores'] = df['scores'].astype(ordered_categories) print(df['scores'].cat.ordered) 순서 여부 확인 ``` 요약 Pandas에서 범주형 변수를 생성하는 방법은 다양합니다.

각 방법은 데이터의 특성과 분석 목적에 따라 적절히 선택할 수 있습니다.

범주형 변수를 사용하면 데이터의 메모리 효율성을 높이고, 특정 연산의 성능을 개선할 수 있습니다.

이를 통해 데이터 분석 및 머신러닝 모델링에 도움을 줄 수 있습니다.

작성자: 박은지 [비회원] | 작성일자: 1년 전 2025-02-10 05:31:24
조회수: 177 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.