[Pandas] iterate 속도 비교

김명섭·2024년 9월 9일

1. for loop

2. iterrows

3. itertuples


itertuples가 iterrows보다 훨씬 빠른 이유는 다음과 같다.
jupyter에서 %%prun으로 확인해보면 내부 함수 호출 횟수가 차이가 많이나고,
이로인해 itertuples가 훨씬 빠른 듯 하다.

4. apply

5. _get_value, _set_value


for문으로 하나하나 접근하는 방식으로, 1번처럼 iloc로 하는 것 보다 훨씬 빠르다.

6. pandas series vectorization(x10)


10번 반복했으므로, 0.001초 걸린다고 봐야한다.

7. numpy ndarray vectorization(x10)


10번 반복했으므로, 0.0005초 걸린다고 봐야한다.
가장 빠르다.

8. loc, iloc vs at, iat



loc, iloc 보다 at, iat이 100배 정도 빠르다. 하지만, at과 iat은 여러 값을 한번에 불러올 수 없다.(slice)
(i 방식이 더 빠른 것 같지도 않다.)

profile
ML Engineer

0개의 댓글