본문 바로가기
Big Data/DataAnalysis & Manipulate

pandas DataFrame 인덱스

by Wikinist 2023. 8. 10.

pandas는 Python 프로그래밍 언어를 위한 데이터 조작 및 분석 라이브러리입니다. DataFrame이라는 데이터 구조를 제공하며, 이는 엑셀 스프레드시트와 유사한 형태의 2차원 데이터 테이블입니다. DataFrame의 인덱스는 데이터에 접근하고 조작하기 위한 방법을 제공합니다.

pandas DataFrame의 인덱스 종류

정수 인덱스(Integer Index): 기본적으로 DataFrame을 생성하면 0부터 시작하는 정수 인덱스가 할당됩니다. 이는 각 행의 고유한 식별자로 사용될 수 있습니다.

라벨 인덱스(Label Index): 정수 인덱스 대신 데이터를 더 명확하게 식별할 수 있는 라벨(문자열 또는 다른 데이터 타입)을 인덱스로 사용할 수 있습니다. 이는 데이터에 의미 있는 이름을 부여하거나 분석을 수행할 때 유용합니다.

다중 인덱스(Multi-index): 하나의 인덱스가 여러 레벨로 구성되는 경우를 의미합니다. 예를 들어, 계층적인 데이터를 다루거나 다차원적인 데이터를 표현할 때 사용될 수 있습니다.

시간 인덱스(Time Index): 시계열 데이터를 다룰 때 특히 유용한 인덱스 형태입니다. 날짜와 시간 정보를 가지고 있어 시간 관련 분석을 수행할 수 있습니다.

DataFrame을 생성할 때 .set_index() 메서드를 사용하여 원하는 열을 인덱스로 설정하거나, 생성 후 .index 속성을 통해 인덱스를 확인하고 조작할 수 있습니다.

예시:

import pandas as pd

data = {"A": [1, 2, 3], "B": [4, 5, 6], "C": [7, 8, 9]}
df = pd.DataFrame(data)

# 정수 인덱스 (기본)
print(df)

# 라벨 인덱스 설정
df = df.set_index("A")
print(df)
df.reset_index(inplace=True)

# 다중 인덱스 설정
df = df.set_index(["A", "B"])
print(df)
df.reset_index(inplace=True)

# 시간 인덱스 설정
df.index = pd.to_datetime(df.index)
print(df)

위 코드는 pandas의 각 종류의 인덱스를 어떻게 사용하는지를 보여줍니다. 데이터 프레임을 만들고 인덱스를 설정하여 결과를 확인할 수 있습니다.

MultiIndex

"MultiIndex"는 파이썬의 판다스(Pandas) 라이브러리에서 제공하는 데이터프레임의 인덱스(행 인덱스)를 다차원화하는 기능을 말합니다. 데이터프레임은 표 형태의 데이터를 처리하기 위한 자료구조이며, MultiIndex를 사용하여 다중 레벨의 인덱스를 생성할 수 있습니다.

예를 들어, 주식 가격 데이터를 다루는 경우, 날짜와 회사 이름을 동시에 인덱스로 사용하고 싶을 때 MultiIndex를 활용할 수 있습니다. 이렇게 하면 날짜와 회사 이름을 조합하여 데이터를 쉽게 검색하거나 조작할 수 있습니다.

MultiIndex는 여러 레벨의 인덱스를 생성할 수 있으며, 각 레벨은 튜플(tuple) 형태로 구성됩니다. 각 레벨은 해당 인덱스가 어떤 개념을 나타내는지를 나타내며, 이를 통해 데이터를 계층적으로 조작할 수 있습니다.

MultiIndex의 주요 개념과 용어

레벨(Level): MultiIndex에서 인덱스의 각 차원을 말합니다. 예를 들어, 날짜와 회사 이름을 인덱스로 사용하려면 "날짜"와 "회사 이름"이 각각 하나의 레벨이 됩니다.

레벨 값(Level Values): 각 레벨에 대한 실제 값들을 말합니다. 날짜 레벨의 값은 날짜들이며, 회사 이름 레벨의 값은 회사 이름들입니다.

MultiIndex 객체: 데이터프레임의 인덱스로 사용되는 MultiIndex를 생성하는 객체입니다.

다중 인덱싱(Multi-Indexing): MultiIndex를 사용하여 데이터프레임의 특정 데이터에 접근하거나 조작하는 것을 말합니다. 다중 인덱싱을 통해 여러 레벨의 인덱스를 동시에 지정하여 원하는 데이터에 접근할 수 있습니다.

예시:

import pandas as pd

# MultiIndex를 사용한 데이터프레임 생성
data = {
    'price': [100, 105, 98, 110],
    'volume': [1000, 1200, 800, 1500]
}
index = pd.MultiIndex.from_tuples([('2023-08-01', 'AAPL'), ('2023-08-01', 'GOOG'),
                                  ('2023-08-02', 'AAPL'), ('2023-08-02', 'GOOG')],
                                  names=['date', 'company'])

df = pd.DataFrame(data, index=index)

# 다중 인덱싱을 사용하여 데이터에 접근
print(df.loc['2023-08-01'])
print(df.loc['2023-08-01', 'AAPL'])

이러한 방식으로 MultiIndex를 활용하여 데이터프레임을 계층적으로 조작하고 분석할 수 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

 

'Big Data > DataAnalysis & Manipulate' 카테고리의 다른 글

DataFrame 통계 함수  (0) 2023.08.11
DataFrame Function 1  (0) 2023.08.11
ANOVA 예제  (0) 2023.08.10
정규분포 표현과 통계적 계산  (0) 2023.08.09
t-검정 수행  (0) 2023.08.09