본문 바로가기
데이터 분석/Python, R 문법

[Python] For Loop vs loc 실행시간 비교

by 장찐 2022. 10. 29.

📚 For loop 수행시간 비교 

 

• dataframe의 특정 column에 대해서 여러 조건으로 값을 필터링하거나 수정하는 경우 

→  for loop를 사용하는 것 보다 loc 사용하는 것이 훨씬 효율적임 

 

 

 row가 5,000,000개인 데이터 프레임 df에 대해서, 

(year == 2021) & (month ==1) & (week == 53) 일 경우 week 값을 1로 수정하고 싶다면 

 

1) for loop 사용 

for i in range(0, len(df)):
    if (df['year'].iloc[i] == 2021) and (df['month'].iloc[i]==1) and (df['week'].iloc[i]==53):
        df['week'].iloc[i] = 1

 

2) loc 사용 

df.loc[(df['year'] == 2021) & (df['month'] ==1) & (df['week'] ==53 ),'week']  = 1

loc 를 사용하는 방식이 훨씬 빠름 

 

 

df.loc[(df['year'] == 2022) & (df['month'] ==1) & (df['week'] ==52 )] 
df.loc[(df['year'] == 2022) & (df['month'] ==1) & (df['week'] ==52 ),'week']

여러 조건에 따라 데이터프레임을 필터링 하거나, 

해당 조건에 맞는 특정 컬럼만 출력할 때도 위 방식이 편리함 

 

댓글