index & columns

pandas DataFrame의 Index와 Columns 이해하기

1. Index (행)

DataFrame에서 Index는 각 행(row)을 식별하는 고유한 레이블입니다.
기본 인덱스: 따로 인덱스를 지정하지 않으면 0부터 시작하는 숫자가 자동으로 붙습니다.
사용자 정의 인덱스: 원하는 값(날짜, 이름, 숫자 등)을 인덱스로 사용할 수 있습니다.
멀티 인덱스: 여러 단계로 구성된 인덱스를 만들 수 있습니다.
# 인덱스 예시 import pandas as pd # 기본 인덱스 data1 = {'이름': ['김철수', '이영희', '박민수'], '나이': [25, 28, 22]} df1 = pd.DataFrame(data1) print("기본 인덱스:") print(df1) # 사용자 정의 인덱스 df2 = pd.DataFrame(data1, index=['학생1', '학생2', '학생3']) print("\n사용자 정의 인덱스:") print(df2) # 멀티 인덱스 arrays = [['1학년', '1학년', '2학년'], ['A반', 'B반', 'A반']] df3 = pd.DataFrame(data1, index=pd.MultiIndex.from_arrays(arrays, names=['학년', '반'])) print("\n멀티 인덱스:") print(df3)
Python
복사

2. Columns (열)

Columns는 DataFrame의 각 열(column)을 식별하는 이름입니다.
데이터 특성 표현: 각 열은 하나의 변수 또는 특성을 나타냅니다.
데이터 타입: 각 열은 서로 다른 데이터 타입을 가질 수 있습니다(숫자, 문자열, 날짜 등).
멀티 컬럼: 인덱스와 마찬가지로 계층적 구조의 열 이름을 설정할 수 있습니다.
# 멀티 컬럼 예시 import pandas as pd # 2단계 계층 구조의 컬럼 생성 columns = pd.MultiIndex.from_tuples([ ('성적', '중간고사'), ('성적', '기말고사'), ('신체정보', '키'), ('신체정보', '몸무게') ]) data = { ('성적', '중간고사'): [85, 90, 75], ('성적', '기말고사'): [88, 92, 78], ('신체정보', '키'): [170, 165, 180], ('신체정보', '몸무게'): [65, 55, 70] } df = pd.DataFrame(data, index=['학생1', '학생2', '학생3']) print(df) # 특정 계층의 데이터만 선택 print(df['성적'])
Python
복사

3. 주요 특징과 활용

데이터 접근:
loc: 이름으로 데이터 찾기 (예: df.loc['철수', '나이'])
iloc: 위치로 데이터 찾기 (예: df.iloc[0, 1])
데이터 조작:
새로운 정보 추가: df['새로운 정보'] = 데이터
정보 삭제: df.drop으로 원하는 행 삭제
# 데이터 접근 예시 df.loc['학생1', '이름'] # '김철수' 반환 df['나이'].mean() # 나이 평균 계산
Python
복사

4. 인덱스와 컬럼의 중요성

데이터 정렬: 인덱스나 열을 기준으로 데이터를 정렬할 수 있습니다.
데이터 분석: 그룹화, 피벗 테이블 등 고급 분석 작업에 활용됩니다.
데이터 통합: 여러 DataFrame을 병합할 때 인덱스나 열을 기준으로 활용됩니다.
인덱스와 컬럼은 pandas DataFrame의 가장 기본적인 구조이며, 효율적인 데이터 분석을 위해서는 이들의 특성과 활용법을 잘 이해하는 것이 중요합니다.
인덱스컬럼pandas DataFrame을 다루는 데 있어 핵심적인 개념으로, 이후 데이터 분석, 처리, 시각화 등 다양한 작업에서 계속해서 활용됩니다. 이러한 개념들은 실제 프로젝트를 진행하면서 더 깊이 있게 다루고 이해하게 될 것입니다.
다음 학습에서 이러한 개념들이 어떻게 실제로 적용되는지 살펴보도록 하겠습니다.