파이썬 판다스 데이터 프레임은 데이터 분석을 위한 아주 기본적인 파이썬의 데이터 구조이다. 데이터 분석에 유용하게 활용할 수 있는 기초적인 데이터프레임 인덱싱 방법인 loc과 iloc의 개념, 그리고 코드 예제와 함께 사용 방법에 대해 상세하게 살펴보자.
데이터프레임 인덱싱이란?
판다스(Pandas) 데이터프레임(DataFrame)에서 인덱싱(indexing)은 특정 행과 열을 선택하는 것을 말한다. 데이터 프레임에서 특정 데이터에 액세스하고 조작하는 방식으로, 이를 활용하면 데이터 분석에 유용하게 사용할 수 있다. 인덱싱은 레이블 기반 인덱싱(행 및 열 레이블 사용) 또는 숫자 기반 인덱싱(행 및 열 인덱스 사용)을 사용할 수 있다. 이 두 가지 주요 방법이 loc(레이블 기반 인덱싱)과 iloc(숫자 기반 인덱싱)이다.
loc은 어떻게 사용하는지?
다음 코드 예제를 보면 이해하기 쉽다. 먼저 dataframe을 만들어 주고, 행마다 인덱스를 세팅해준다. 그리고 loc을 사용하여 인덱스명을 입력하여 특정행을 선택할 수 있다. 특정 컬럼만 선택할 수도 있고 특정 행과 열을 모두 지정할 수도 있다. 만약 특정 컬럼만 선택하고 싶을 때는 :를 행 인덱싱쪽에 넣어주자. (제일 아래 예시 참고)
import pandas as pd
# create a sample DataFrame
data = {'Column1': [1, 2, 3, 4],
'Column2': [10, 20, 30, 40]}
df = pd.DataFrame(data)
# set the index of the DataFrame
df.index = ['Row1', 'Row2', 'Row3', 'Row4']
# select a single row using loc
print(df.loc['Row1'])
# select multiple rows using loc
print(df.loc[['Row1', 'Row3']])
# select a single row and column using loc
print(df.loc['Row1', 'Column1'])
# select multiple rows and columns using loc
print(df.loc[['Row1', 'Row3'], ['Column1', 'Column2']])
# select a single column using loc
print(df.loc[:, 'Column1'])
iloc은 어떻게 사용하는지?
iloc 사용법 또한 코드 예제와 함께 살펴보자. iloc은 행과 열의 위치를 숫자로 입력함으로써 선택할 수 있다. 가장 처음 행과 열은 숫자 0부터 시작하니 주의하자. loc과 마찬가지로 행만 선택할 수도 있고, 열만 선택할 수도 있고, 특정 행과 열을 모두 선택할수도 있다. 그리고 여러개의 숫자를 입력하여 여러개의 행과 열을 한번에 선택할수도 있다. 만약 특정 컬럼값을 모두 보고 있다면 마지막줄처럼 :를 행자리에 넣어줌으로써 특정 컬럼값만 선택할 수 있다.
import pandas as pd
# create a sample DataFrame
data = {'Column1': [1, 2, 3, 4],
'Column2': [10, 20, 30, 40]}
df = pd.DataFrame(data)
# select a single row using iloc
print(df.iloc[0])
# select multiple rows using iloc
print(df.iloc[[0, 2]])
# select a single row and column using iloc
print(df.iloc[0, 0])
# select multiple rows and columns using iloc
print(df.iloc[[0, 2], [0, 1]])
# select a single column using iloc
print(df.iloc[:, 0])
이번 포스팅에서는 loc과 iloc의 개념 그리고 코드 예제와 함께 사용방법에 대해 살펴봤다. loc과 iloc의 차이는 행 인덱스와 컬럼을 레이블(이름)로 선택할지 아니면 위치에 해당하는 숫자로 선택할지의 차이에 있다. loc과 iloc이 처음에는 헷갈릴 수 있지만 사용하다보면 참으로 편리하다고 느껴질 것이다. 인덱싱을 자유자재로 할줄 알면 데이터 분석에 유용하게 활용할 수 있다. (파이썬 독학 관련 포스팅 모음)
'파이썬 독학' 카테고리의 다른 글
코딩 실력 향상을 위해 LeetCode 리트코드 하세요. (0) | 2023.02.08 |
---|---|
[파이썬] 아직도 for loop만 쓰시나요? list comprehension 으로 간편하게 코딩하기 (0) | 2023.02.08 |
구글 코랩(colab) 데이터 파일 업로드 하는 2가지 방법 (0) | 2023.02.05 |
[파이썬 독학] 판다스 데이터 프레임 기초 - 데이터 로드, 조건부 필터링, merge, 클리닝, 플랏 그리기 (0) | 2023.02.01 |
파이썬 아직도 설치해서 쓰시나요? 구글 코랩 써보세요. (colab) (0) | 2023.01.31 |
댓글