파이썬 pandas에서 다중 인덱스 데이터프레임을 만드는 방법은?
_____A1: 다중 인덱스는 행이나 열에 두 개 이상의 수준(level)의 인덱스를 사용하는 pandas의 기능으로, 데이터를 계층적으로 표현하고 복잡한 데이터 구조를 다루기에 적합합니다.
Q2: pandas에서 다중 인덱스 데이터프레임을 만드는 기본 방법은 무엇인가요?
A2: pandas DataFrame 생성 시 인덱스에 리스트나 튜플 형태의 다중 인덱스를 지정하거나, `pd.MultiIndex.from_arrays()`, `pd.MultiIndex.from_tuples()`, `pd.MultiIndex.from_product()` 같은 함수를 활용하면 됩니다.
Q3: 리스트를 이용해 다중 인덱스를 만드는 예시는?
A3:
```python
import pandas as pd
arrays = [
['A', 'A', 'B', 'B'],
[1, 2, 1, 2]
]
index = pd.MultiIndex.from_arrays(arrays, names=['upper', 'lower'])
df = pd.DataFrame({'value': [10, 20, 30, 40]}, index=index)
print(df)
```
Q4: 튜플 리스트로 다중 인덱스를 만드는 방법은?
A4:
```python
import pandas as pd
tuples = [('A', 1), ('A', 2), ('B', 1), ('B', 2)]
index = pd.MultiIndex.from_tuples(tuples, names=['upper', 'lower'])
df = pd.DataFrame({'value': [10, 20, 30, 40]}, index=index)
print(df)
```
Q5: 인덱스들의 카테시안 곱으로 다중 인덱스를 만들려면?
A5:
```python
index = pd.MultiIndex.from_product([['A', 'B'], [1, 2]], names=['upper', 'lower'])
df = pd.DataFrame({'value': [10, 20, 30, 40]}, index=index)
print(df)
```
Q6: 기존 컬럼을 인덱스로 다중 인덱스를 만들고 싶을 때?
A6: `set_index()` 메서드를 사용해서 여러 컬럼을 인덱스로 지정합니다.
```python
df = pd.DataFrame({
'upper': ['A', 'A', 'B', 'B'],
'lower': [1, 2, 1, 2],
'value': [10, 20, 30, 40]
})
df_multi = df.set_index(['upper', 'lower'])
print(df_multi)
```
Q7: 다중 컬럼 인덱스는 어떻게 만들 수 있나요?
A7: 컬럼에 다중 인덱스도 지정할 수 있습니다.
```python
arrays = [['value', 'value'], ['min', 'max']]
columns = pd.MultiIndex.from_arrays(arrays)
df = pd.DataFrame([[1, 5], [2, 10]], columns=columns)
print(df)
```
Q8: 다중 인덱스 생성 시 인덱스 이름 설정은 어떻게 하나요?
A8: `pd.MultiIndex` 생성 시 `names` 인자를 사용합니다. 예: `names=['level1', 'level2']`
Q9: 다중 인덱스 데이터프레임을 제대로 생성했는지 확인하려면?
A9: `df.index`를 출력해서 `MultiIndex`인지 확인하며, `df.index.names`로 각 수준 이름을 확인할 수 있습니다.
Q10: 다중 인덱스 데이터프레임 사용 시 주의할 점은?
A10: 인덱스 레벨의 순서가 중요하며, 슬라이싱이나 데이터 선택 시 각 레벨 이름이나 값을 정확히 지정해야 원하는 결과를 얻을 수 있습니다.
작성자:
김현수 [비회원]
| 작성일자: 1년 전
2025-02-10 05:31:08
조회수: 138 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 138 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.