[Python pandas] DataFrame의 행 또는 열 데이터 선택해서 가져오기 (DataFrame objects indexing and selection)
Python 분석과 프로그래밍/Python 데이터 전처리 2016. 11. 27. 16:37지난번 포스팅에서는 Python pandas의 DataFrame 만들기, Attributes 조회하기에 대해서 알아보았습니다.
이번 포스팅에서는 DataFrame의 데이터를
- (1) 행(row) 기준으로 선택해서 가져오기
- (2) 열(column) 기준으로 선택해서 가져오기
방법(DataFrame objects indexing and selection by rows or columns)에 대해서 소개하겠습니다.
먼저, 필요한 Libraries 를 importing하고, 간단한 5행 3열의 DataFrame을 만들어 보겠습니다.
In [1]: import numpy as np ...: import pandas as pd ...: from pandas import DataFrame ...: ...: ##-- Making DataFrame ...: df_2 = DataFrame({'class_1': ['a', 'a', 'b', 'b', 'c'], ...: 'var_1': np.arange(5), ...: 'var_2': np.random.randn(5)}, ...: index = ['r0', 'r1', 'r2', 'r3', 'r4']) ...: ...: df_2 Out[1]: class_1 var_1 var_2
|
(1) 행 기준으로 선택해서 가져오기 (indexing and selection by row) |
DataFrame의 index 를 확인해보겠습니다.
In [2]: df_2.index # returning index Out[2]: Index(['r0', 'r1', 'r2', 'r3', 'r4'], dtype='object')
|
'ix'를 사용하면 행 기준 indexing할 때 정수(int)와 행 이름(row label) 모두 사용할 수 있어서 편리합니다.
조건을 조금씩 달리해가면서 몇 가지 예를 아래에 들어보겠습니다. 서로 다른 점을 유심히 살펴보시면 어렵지 않게 사용법을 이해하실 수 있을 겁니다. 어렵지 않아요.
In [4]: df_2.ix[2:] # indexing from int. position to end Out[4]: class_1 var_1 var_2
|
In [5]: df_2.ix[2] # indexing specific row with int. position Out[5]: class_1 b
|
In [6]: df_2.ix['r2'] # indexing specific row with row label Out[6]: class_1 b
|
데이터가 매우 많은 수의 행을 가지고 있을 경우에 위로 부터 n개의 행만 보고 싶은 때는 head(n) 메소드를 사용하면 됩니다.
In [7]: df_2.head(2) # Returns first n rows Out[7]: class_1 var_1 var_2
|
tail(n) 메소드는 행의 제일 마지막부터 n번째까지의 행 기준 데이터를 반환합니다.
In [8]: df_2.tail(2) # Returns last n rows
Out[8]:
class_1 var_1 var_2
|
(2) 열 기준으로 선택해서 가져오기 (indexing and selection by column) |
df_2 DataFrame의 열을 .columns 로 확인해 보겠습니다.
In [12]: df_2.columns
|
열(column) 기준으로 indexing할때는 '[ ]' 안에 열 이름(column label)을 'string' 형식으로 입력해주면 됩니다.
In [13]: df_2['class_1'] Out[13]: r0 a
|
두 개이상의 열(columns)을 가져오고 싶을 때는 튜플(tuple)을 사용해서 열의 이름을 나열해 주면 됩니다.
In [14]: df_2[['class_1', 'var_1']] Out[14]: class_1 var_1
|
이상으로 DataFrame Indexing and Selection에 대해서 마치겠습니다.
다음번 포스팅에서는 DataFrame index의 reindexing에 대해서 알아보겠습니다.
'Python 분석과 프로그래밍 > Python 데이터 전처리' 카테고리의 다른 글
[Python pandas] 여러개의 동일한 형태 DataFrame 합치기 : pd.concat() (2) | 2016.11.28 |
---|---|
[Python pandas] DataFrame의 index 재설정(reindex) 와 결측값 채우기(fill in missing values) (4) | 2016.11.27 |
[Python pandas] pd.DataFrame 만들고 Attributes 조회하기 (0) | 2016.11.26 |
[Python pandas] DataFrame을 csv 파일로 내보내기 : df.to_csv() (11) | 2016.11.26 |
[Python pandas] DB에 접속해서 데이터 불러오기 (DB connection and SQL query) (0) | 2016.11.25 |