이것저것 담는 블로그

Pandas DataFrame 행 조회할 때 iterrows() 헷갈리지 않게 사용하기 본문

IT/Python

Pandas DataFrame 행 조회할 때 iterrows() 헷갈리지 않게 사용하기

버즈와우디 2021. 8. 4. 20:32

필자는 pandas를 쓰면서 dataframe의 행을 순서대로 조회할때 df.iterrows() 메서드를 가장 많이 사용한다.
iterrows()를 쓰다보면 헷갈리는 것들이 조금 있어서 정리하고자 한다.

우선 아래와 같은 dataframe을 정의해보자.

import pandas as pd 
sample_df = pd.DataFrame([100, 90], index=['나나', '모모'], columns=['점수'])

sample_df를 프린트해본다.

이 dataframe을 조회하기 위해 두가지 방법으로 iterrows() 메서드를 사용할 수 있다.

1. 인덱스와 행을 같이 가져올 때

for idx, row in sample_df.iterrows(): 
	print(idx, row) 
	print(type(row))
	print(row['점수'])

여기서 idx는 당연히 string이고 row는 pandas의 Series 로 나온다.
따라서 Series에서 column명으로 데이터에 접근하면 100 90 이 차례로 나오는 것을 확인할 수 있다.

2. 행만 가져올 때

for row in sample_df.iterrows(): 
	print(row, type(row))
	print(row[0], type(row[0]))
	print(row[1], type(row[1]))

여기서 row는 tuple인데 첫번째 값은 그 행의 index 값, 두번째 값은 위에서 리턴한 row와 같은 Series 형태의 데이터이다.


정리하자면 dataframe.iterrows() 메서드는 인덱스, 데이터 series를 순서대로 내뱉는데,
인덱스 미리 뽑아놓고 싶으면 for문에서부터 idx, row 이런 식으로 뺄 수 있다는 것이다.

'IT > Python' 카테고리의 다른 글

Python any, all 메서드  (0) 2022.11.30
Pandas SettingWithCopyWarning 해결방법  (0) 2021.10.18