전체 글

SMALL
코딩 개발/Date Engineer

Polars 공부 5부 — join으로 여러 데이터를 연결하고 Data Mart 만들기

지난 4부에서는 Polars에서 데이터를 실제로 정제하고 변환하는 방법을 공부했습니다.특히,filter()cast()with_columns()fill_null()fill_nan()when()then()otherwise().str같은 기능을 사용해봤습니다.이번 5부에서는 이제 여러 개의 DataFrame을 서로 연결해보려고 합니다.바로,join()입니다.Pandas를 공부할 때는pd.merge()를 사용했습니다.Polars에서는 비슷한 역할을 하는 기능으로 join()을 사용합니다.이번 글에서는 단순히 두 DataFrame을 합치는 것에서 끝나지 않고,customersordersorder_itemsproducts처럼 서로 나뉘어 있는 데이터를 계속 연결해서 Data Mart를 만드는 흐름까지 공부해보겠습니..

코딩 개발/Date Engineer

Polars 공부 4부 — filter, cast, with_columns로 데이터 정제하기

지난 3부에서는 Polars에서 데이터를 선택하는 방법과 함께 가장 중요한 개념 중 하나인 Eager와 Lazy를 공부했습니다. 특히select()pl.col()pl.all()pl.read_csv()pl.scan_csv()collect()같은 표현을 살펴봤습니다. 이번 4부에서는 이제 실제 데이터를 조금 더 적극적으로 바꿔보려고 합니다.예를 들어,구매금액이 200달러를 넘는 주문만 추출완료된 주문만 추출데이터 타입 변경세금 컬럼 추가할인 금액 계산결측치 처리고객 이름으로 이메일 생성같은 작업입니다. Pandas를 공부하면서 이미 비슷한 작업을 해봤기 때문에 이번에는“Pandas에서 하던 일을 Polars에서는 어떻게 표현하는가?” 를 같이 생각하면서 공부해보겠습니다.1. 먼저 데이터를 불러와보겠습니다원본..

코딩 개발/Date Engineer

Polars 공부 3부 — select부터 Eager와 Lazy까지 제대로 이해하기

지난 2부에서는 Polars DataFrame을 만들고,write_csv()write_parquet()read_csv()read_parquet()를 이용해서 데이터를 저장하고 읽는 방법을 공부했습니다. 특히 Parquet이열 기반 저장압축스키마 정보통계 메타데이터를 가진다는 점도 살펴봤습니다. 이번 3부에서는 Polars의 문법적인 특징과 더불어, 정말 중요한 개념인Eager와 Lazy의 차이 를 제대로 이해해보려고 합니다. 처음에는 저도“그냥 데이터를 읽고 필터링하면 되는 거 아닌가?” 라고 생각했는데, Polars는 단순히 결과만 만드는 것이 아니라 어떤 방식으로 계산할지 계획하고 최적화하는 구조가 핵심이었습니다.1. 먼저 Polars DataFrame의 기본 정보를 확인해보겠습니다원본에서는 대용량 ..

코딩 개발/Date Engineer

Polars 공부 2부 — DataFrame 생성과 CSV, Parquet 제대로 이해하기

지난 1부에서는 Polars가 왜 빠른지, 그리고 Pandas와 어떤 차이가 있는지를 중심으로 공부했습니다.특히 기억할 만한 내용은 다음과 같았습니다.Polars→ Rust 기반→ Apache Arrow 기반→ 열 중심 처리→ 병렬 처리→ Lazy Execution→ 메모리 효율 이번 2부에서는 조금 더 실습 쪽으로 들어가보겠습니다.먼저 Polars DataFrame을 직접 만들고,write_csv()write_parquet()read_csv()read_parquet()를 사용해보겠습니다. 그리고 이번 글에서 가장 중요한 내용인,왜 CSV보다 Parquet이 대용량 데이터에서 더 유리할 수 있는가?를 공부해보겠습니다.1. Polars DataFrame 직접 만들어보기Polars에서는 다음처럼 DataF..

코딩 개발/Date Engineer

Polars 공부 1부 — 왜 Pandas 말고 Polars를 쓸까?

NumPy와 Pandas를 공부한 다음 이번에는 Polars를 공부하게 되었습니다. 처음 이름을 봤을 때는 솔직히 이런 생각이 들었습니다.“Pandas도 DataFrame을 다루는데 Polars를 또 배워야 하나?” Pandas만으로도CSV 읽기데이터 필터링결측치 처리병합집계피벗같은 작업을 충분히 할 수 있었습니다. 그런데 데이터를 더 크게 보고, 처리 속도와 메모리까지 신경 쓰기 시작하면 Polars가 왜 등장했는지 조금씩 이해할 수 있습니다.이번 글에서는 문법부터 바로 들어가기보다,Polars가 무엇인지왜 빠르다고 하는지Pandas와 어떤 차이가 있는지Rust와 Apache Arrow가 왜 중요한지단일 머신에서 성능을 극대화한다는 말이 무슨 뜻인지Series와 DataFrame 구조는 Pandas와 ..

코딩 개발/Date Engineer

Pandas 공부 8부 — 중복과 결측치 처리, 데이터를 어떻게 깨끗하게 만들까?

지금까지 Pandas를 공부하면서 정말 많은 작업을 해봤습니다.DataFrame 만들기↓데이터 구조 확인↓원하는 행과 열 추출↓조건으로 필터링↓파생변수 생성↓여러 데이터 병합↓groupby와 pivot_table로 집계 그런데 실제 데이터를 분석하기 전에 반드시 한 번 더 확인해야 할 것이 있습니다. 바로 데이터가 깨끗한가? 입니다.실제 데이터에는 생각보다 다양한 문제가 들어 있을 수 있습니다.같은 데이터가 두 번 들어 있음값이 비어 있음잘못된 값이 입력됨일부 컬럼만 데이터가 없음측정 과정에서 값이 누락됨이런 데이터를 그대로 사용하면 평균, 합계, 집계뿐만 아니라 머신러닝 결과까지 영향을 받을 수 있습니다. 그래서 이번 마지막 8부에서는 크게 두 가지를 공부해보려고 합니다.중복 데이터 처리결측 데이터 처..

LIST
호소세
호소세의 개발 블로그