[Python] Pandas: 행 반복 연산할 때 활용

Jae Gyeong Lee·2024년 3월 26일

DataFrame 행 단위 연산에 활용하는 것

  • DataFrame에서 각 행을 반복(iterate)해서 처리하고자 할 때 사용
    1) .iterrows()
    2) .itertuples()
import pandas as pd

data_frame = {'한글': ['가', '나', '다'],
              '알파벳': ['A',  'B',  'C']}

df = pd.DataFrame(data_frame)

1. .iterrows()

DataFrame.iterrows()

  • DataFrame 내 각각의 행을 참조해 차례로 작업을 하는 for loop에 활용
  • 각 행을 (index, row) 쌍으로 반복, 반환
    1) index: DataFrame의 index 값
    2) row: 각각의 행을 Series 형태로 반환
for index, row in df.iterrows():
    print(index, row)

>>
0 한글     가
알파벳    A
Name: 0, dtype: object
1 한글     나
알파벳    B
Name: 1, dtype: object
2 한글     다
알파벳    C
Name: 2, dtype: object
  • 점(.) 또는 리스트 형태(['oo'])로 특정 열을 지정해, 해당되는 행/열에 존재하는 값에 접근
for index, row in df.iterrows():

    a = row['한글']
    b = row.한글
    
    if a == b:
        print('동일')

>>
동일
동일
동일

2. .iterutples()

DataFrame.itertuples(index=True, name='Pandas')
ㄴ index: index 출력 여부
ㄴ name: 사용자가 지정하는 값으로 named tuple 출력, None이면 일반 튜플, 기본값 Pandas

  • DataFrame 내 각각의 행을 참조해 차례로 작업을 하는 for loop에 활용
  • 각 행을 (row)로 반복, 반환
    1) row: 각각의 행을 Pandas 형태로 반환
for row in df.itertuples():
    print(row)

>>
Pandas(Index=0, 한글='가', 알파벳='A')
Pandas(Index=1, 한글='나', 알파벳='B')
Pandas(Index=2, 한글='다', 알파벳='C')
  • 점(.)으로 특정 열을 지정해, 해당되는 행/열에 존재하는 값에 접근
for row in df.itertuples():
    print(row.한글)
    
>>
가
나
다

=> .iterutples()이 .iterrow() 보다 속도가 빠름

profile
안녕하세요 반갑습니다. 공부한 내용들을 기록하고 있습니다.

0개의 댓글