Appia의 IT세상

파이썬[Python] Pandas, DataFrame의 범위를 이용한 열, 행 선택 방법(iloc) 본문

Python/Python Pandas

파이썬[Python] Pandas, DataFrame의 범위를 이용한 열, 행 선택 방법(iloc)

Appia 2020. 4. 4. 07:09
반응형

이전 포스팅에서는 loc()를 이용하여 각 인덱스(label) 값을 바탕으로 데이터를 선별하는 방법에 대해서 살펴봤습니다. 하지만, 생각보다 키값 또는 인덱스 값을 정확히 알고 있는 사람들이 많지 않을 수 있습니다. 따라서, 이번 포스팅에서는 이전 포스팅과는 달리, 숫자를 이용한 범위 지정 또는 데이터를 선택하는 방법에 대해서 살펴보고자 합니다. 

 

이와 같은 숫자를 이용하여 데이터를 선택하거나 범위를 지정하는 방식에 사용되는 함수는 다음과 같습니다. 

 

iloc() - 숫자를 이용한 범위 또는 데이터 선택

 

그럼 예시를 보면서 하나식 살펴보도록 하겠습니다. 

example) 특정 열까지 데이터 출력 

import pandas as pd
 
import numpy as np
 
df = pd.DataFrame(np.random.randn(85),
 
index = ['a','b','c','d','e','f','g','h'], columns = ['A''B''C''D','E'])
 
print("~4번째 열까지 출력")
 
print (df.iloc[:4])
cs

result) 

~4번째 열까지 출력
 
          A         B         C         D         E
          
a  0.026009 -0.977460 -0.506913  0.794095  0.566339
 
-1.022479 -0.533778 -0.167793  0.185686 -0.753602
 
-0.388914 -1.178371 -0.901626 -2.087328  0.595545
 
d  1.487943  0.287191 -1.001782  0.746699  0.868238
cs

iloc[]를 이용할 때도 0부터 시작합니다. 따라서, [:4]를 통해 0, 1, 2, 3에 해당하는 열들을 출력합니다. 

 

그럼 특정 행을 한번 출력해보도록 하겠습니다. 

example) 특정 행까지 데이터 출력 

import pandas as pd
 
import numpy as np
 
df = pd.DataFrame(np.random.randn(85),
 
index = ['a','b','c','d','e','f','g','h'], columns = ['A''B''C''D','E'])
 
print("~2번째 행까지 출력")
 
print (df.iloc[:,:2])
cs

result) 

~2번째 행까지 출력
 
          A         B
          
-0.322768 -1.089023
 
b  0.643058  0.730364
 
c  0.861823 -1.403163
 
-0.119051  0.191363
 
e  0.997609 -0.376027
 
f  1.059350 -1.378842
 
g  1.110402 -0.775568
 
-0.150513  1.303761
cs

iloc[열, 행] 기반으로 진행이 됩니다. 만약에 인자가 한개만 입력되었다면, 열만 표시가 됩니다. 따라서 행만 출력하시고자 한다면 iloc[:,행범위]을 입력해주셔야 합니다. 그럼 이번에는 좀 더 다른 예시를 살펴보겠습니다. 행열에 대한 특정 범위 및 특정 데이터만 선별해보도록 하겠습니다. 

 

example) 

import pandas as pd
 
import numpy as np
 
df = pd.DataFrame(np.random.randn(85),
 
index = ['a','b','c','d','e','f','g','h'], columns = ['A''B''C''D','E'])
 
print("특정 데이터 선별")
 
print(df.iloc[[135], [13]])
 
print("특정 범위 데이터 선별")
 
print(df.iloc[1:3,1:3])
cs

 

result)

특정 데이터 선별
 
          B         D
          
b  1.104821  1.288467
 
-0.035517 -1.084780
 
-0.974689  0.426956
 
특정 범위 데이터 선별
 
          B         C
          
b  1.104821 -1.080086
 
c  0.199188  0.430382
cs

 

특정데이터를 선별할 경우에는 iloc[[열 부분],[행 부분]] 형태로 하셔야 합니다. 그럼 범위를 지정할 경우에는 iloc[열 시작 : 열 끝(열 부분), 행 시작 : 행 끝(행부분)]으로 사용하셔야 합니다. 

 

이번 포스팅에서는 인덱스 방법을 바탕으로 데이터를 선별하고 선택하는 방법에 대해서 살펴봤습니다. 이전 포스팅인 loc를 활용하는 부분과 함께 보는 것도 좋을 것 같습니다. ( 다음 링크 참조)

 

파이썬[Python] Pandas, DataFrame의 인덱스(label)를 이용한 열, 행 선택 방법(loc)

불러오는 중입니다...

혹시 궁금하시거나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨 주시길 바랍니다. 감사합니다. 

 

반응형
Comments