PYTHON/etc contents

데이터프레임 인덱스 값 얻어오기

  • -

가끔 데이터프레임 내에서 특정 값이 존재하는 행의 인덱스 번호를 얻어와야 할 때가 있다. 왜냐하면 데이터프레임의 특정 값에 접근하기 위해서는 인덱스 번호가 무엇보다도 가장 기본적으로 사용되는 방법이기도 하며, 무엇보다도 가장 간단한 접근 방법이기 때문이다. 예를 들어, 아래와 같은 데이터프레임이 있다고 가정해보자.

code open high low close pre_close vix
000100 1000 1300        
000300 1300 1350        

우리가 이 때 종목코드가 000100인 데이터가 데이터프레임의 몇 번째 행에 입력되어 있는지를 알아야 000100 종목코드가 입력되어 있는 행의 다른 데이터(시가, 고가, 저가 등)에도 접근할 수 있다.

 

특정 칼럼의 특정 값이 위치한 인덱스 번호 얻어오기

이해를 돕기 위해, 위의 데이터프레임 값은   dataframe  변수에 입력되어 있다고 가정하자. 일단   dataframe  내에 있는 특정 칼럼에 접근하는 방법은   dataframe.칼럼명  이다. 이와 마찬가지로, 우리는 index에 접근하기 위해서는   dataframe.index  와 같은 형태로 제작할 수 있다. 더 나아가서, 우리는 index 뒤에 []를 이용해 인덱싱도 이용할 수 있다.

예를 들어,   dataframe  안에 있는 칼럼 중 칼럼의 이름이 code인 열에서, 그 값이 000100인 경우의 인덱스 값을 얻어오기 위해서는 아래와 같이 제작하면 된다. 그리고 이 때 얻어온 값을   index_number  라는 이름을 가진 변수에 입력했다.(지금 시점에서의   index_number  안에는 0이 입력되어 있을 것이다.)

index_number = dataframe.index[(dataframe['code'] == '000100')]

 

이제 이 index_number라는 변수를 통해 우리는 특정 행의 데이터를 얻어올 수 있다.

print(dataframe.iloc[index_numer])

## 출력 결과 ##
code : 000100
open : 1000
high : 1300
low :
close :
pre_close :
vix :

 

 


728x90

 

 

결과값이 그렇게 나오면 데이터를 어떻게 써?

데이터프레임 내에서는 해당 데이터를 리스트 자료형으로 만들어주는   to_list()  메서드를 이용해서 데이터를 보다 편리하게 접근할 수 있다.

print(dataframe.iloc[index_numer].to_list())

## 출력 결과 ##
['000100', '1000', '1300', '', '', '', '']

 

이제 to_list()를 통해 리스트로 만든 데이터(리스트 형태의 자료형)에 또 다시 인덱싱을 통해 데이터에 접근할 수 있다.

data = dataframe.iloc[index_numer].to_list()
data[0]

## 출력 결과 ##
000100

 

 

 


728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.