기본 콘텐츠로 건너뛰기

라벨이 Pandas 대안인 게시물 표시

Pandas 없이도 할 수 있는 데이터 처리 - itertools, collections 정복하기

Pandas 없이 데이터 처리하기? 생각만 해도 머리가 지끈거리시죠? 저도 처음엔 그랬어요. Pandas는 정말 편리하니까요. 하지만 가끔은 Pandas의 무게가 부담스러울 때가 있잖아요? 특히 데이터가 엄청나게 클 때, 혹은 좀 더 가볍고 빠른 처리가 필요할 때 말이죠. 그럴 때 Python의 숨겨진 보물, itertools 와 collections 를 꺼내들면 됩니다! 이 두 모듈은 마치 숨겨진 비밀병기 같아요. Pandas처럼 화려하진 않지만, 제대로 활용하면 Pandas 못지않게 강력한 힘을 발휘하거든요. 저도 처음엔 낯설었지만, 쓰다 보니 매력에 푹 빠졌어요. 자, 이제부터 itertools 와 collections 의 세계로 함께 떠나볼까요? 먼저 itertools 부터 살펴볼게요. 이건 마치 데이터를 가지고 놀 수 있는 장난감 상자 같아요. 데이터를 만들고, 섞고, 필터링하고… 정말 다양한 일을 할 수 있죠. combinations , permutations 같은 함수는 순열 조합을 쉽게 계산해줘서 정말 편리해요. 그리고 무엇보다 메모리 효율이 뛰어나서, 데이터가 아무리 많아도 걱정 없답니다. 대용량 데이터 처리할 때 정말 빛을 발하는 친구예요. 그리고 collections 는요? 이건 데이터를 깔끔하게 정리하고 관리하는 데 딱이에요. namedtuple 은 데이터에 이름을 붙여서 관리할 수 있게 해주고, defaultdict 는 기본값을 설정해줘서 코드를 훨씬 간결하게 만들어줘요. Counter 는 데이터 빈도수를 척척 계산해주는 든든한 조력자고요. 제가 가장 자주 쓰는 건 deque 인데, 데이터를 효율적으로 추가하고 삭제할 때 정말 유용하더라고요. 자, 이제 실제 예제를 보여드릴게요. 먼저 itertools.groupby 를 이용해서 CSV 파일을 처리하는 방법인데요. 예전에 프로젝트에서 비슷한 작업을 했었는데, Pandas를 쓰려니 너무 무겁더라고요...