파이썬/Pandas

Pandas DataFrame의 행을 순회하는 방법

코샵 2024. 1. 18. 10:33
반응형

Pandas DataFrame은 행과 열로 구성된 테이블 형식의 데이터 구조입니다. DataFrame의 행을 순회하는 방법은 크게 다음과 같이 세 가지가 있습니다.

  • iterrows() 메서드 사용
  • itertuples() 메서드 사용
  • for 루프 사용

iterrows() 

iterrows() 메서드는 DataFrame의 각 행을 튜플의 형태로 반환합니다. 튜플의 첫 번째 요소는 행의 인덱스이고, 두 번째 요소는 행의 데이터입니다.

df = pd.DataFrame({
    'col1': [1, 2, 3],
    'col2': ['a', 'b', 'c']
})

for row in df.iterrows():
  print(row)
(0, (1, 'a'))
(1, (2, 'b'))
(2, (3, 'c'))

 

itertuples()

itertuples() 메서드는 DataFrame의 각 행을 namedtuple의 형태로 반환합니다. namedtuple은 튜플과 비슷하지만, 각 요소에 이름을 지정할 수 있습니다.

df = pd.DataFrame({
    'col1': [1, 2, 3],
    'col2': ['a', 'b', 'c']
})

for row in df.itertuples():
  print(row)
Row(col1=1, col2='a')
Row(col1=2, col2='b')
Row(col1=3, col2='c')

 

iterrows() 와 itertuples()의 차이점

iterrows() 메서드와 itertuples() 메서드의 차이점은 다음과 같습니다.

특징 iterrows() 메서드 itertuples() 메서드
반환 형식 튜플 namedtuple
요소 이름 없음 있음
메모리 사용량 적음

 

for 루프 사용

for 루프를 사용하여 데이터프레임의 각 행을 순회할 수도 있습니다. 이 경우 iloc() 메서드를 사용하여 행 인덱스를 얻을 수 있습니다. 예를 들어, 위의 예제에서 데이터프레임의 행을 순회하려면 다음과 같이 코드를 작성할 수 있습니다.

df = pd.DataFrame({"col1": ["서울", "대전", "부산", "광주"]})

# 데이터프레임 행 순회
for i in range(len(df)):
    print(i, df.iloc[i])
0 (0, '서울')
1 (1, '대전')
2 (2, '부산')
3 (3, '광주')