Polars
표 형태의 데이터를 빠르게 다루기 위한 파이썬 라이브러리
pandas처럼 CSV, 엑셀, 데이터베이스에서 가져온 데이터를 행과 열이 있는 표 형태로 다룰 수 있다. pandas와 비슷한 일을 하지만, 큰 데이터를 처리할 때 더 빠른 경우가 많고 문법은 조금 더 명령을 연결하는 방식에 가깝다(메서드 체이닝).
1. polars 설치
pip install polars
- 호출
import polars as pl
2. DataFrame
DataFrame은 행과 열이 있는 표. 엑셀 시트나 데이터베이스 테이블을 떠올리면 이해하기 쉽다.
import polars as pl
data = {
"이름": ["철수", "영희", "민수"],
"나이": [20, 25, 22],
"점수": [80, 95, 70]
}
df = pl.DataFrame(data)
print(df)
출력 결과는 다음과 비슷하다.
shape: (3, 3)
┌──────┬─────┬─────┐
│ 이름 ┆ 나이 ┆ 점수 │
│ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ i64 │
╞══════╪═════╪═════╡
│ 철수 ┆ 20 ┆ 80 │
│ 영희 ┆ 25 ┆ 95 │
│ 민수 ┆ 22 ┆ 70 │
└──────┴─────┴─────┘
shape: (3, 3)은 3행 3열이라는 뜻이다. polars는 출력할 때 열 이름뿐 아니라 각 열의 자료형도 함께 보여준다.
3. CSV 파일 읽기
polars는 파일을 읽어올 때 많이 사용한다.
CSV 파일을 읽으려면 다음과 같이 작성한다.
df = pl.read_csv("data.csv")
엑셀 파일도 읽을 수 있다.
df = pl.read_excel("data.xlsx")
다만 엑셀 파일을 읽을 때는 환경에 따라 추가 패키지가 필요할 수 있다.
4. 데이터 미리 보기
데이터가 크면 전체를 한 번에 보기 어렵다. 이럴 때는 일부만 확인한다.
앞의 5줄을 보고 싶다면 head()를 사용한다.
df.head()
뒤의 5줄을 보고 싶다면 tail()을 사용한다.
df.tail()
열 이름과 자료형을 확인하려면 schema를 사용한다.
df.schema
숫자 데이터의 평균, 최솟값, 최댓값 같은 기본 통계를 확인하려면 describe()를 사용한다.
df.describe()
5. 특정 열 선택하기
polars에서는 특정 열을 고를 때 select()를 자주 사용한다.
특정 열 하나만 보고 싶을 때는 다음과 같이 작성한다.
df.select("이름")
여러 열을 선택할 수도 있다.
df.select(["이름", "점수"])
select()는 보고 싶은 열만 골라서 새로운 DataFrame으로 반환한다.
6. 조건으로 행 선택하기
polars에서는 조건에 맞는 행만 골라낼 때 filter()를 사용한다.
예를 들어 점수가 80점 이상인 사람만 보고 싶다면 다음과 같이 작성한다.
df.filter(pl.col("점수") >= 80)
나이가 22살 이상인 사람만 보고 싶다면 다음과 같이 작성한다.
df.filter(pl.col("나이") >= 22)
이 형태는 polars에서 매우 자주 사용한다.
df.filter(pl.col("열이름") 조건)
예를 들어 다음 코드는 점수가 90보다 작은 행만 선택한다.
df.filter(pl.col("점수") < 90)
여기서 pl.col("점수")는 점수라는 열을 가리키는 표현이다. pandas에서 df["점수"]로 열을 가리키는 것과 비슷한 역할을 한다.
7. 새 열 만들기
기존 데이터를 이용해 새로운 열을 만들 수 있다.
예를 들어 점수가 80점 이상이면 합격 여부를 표시하려면...
df = df.with_columns(
(pl.col("점수") >= 80).alias("합격여부")
)
- 결과
shape: (3, 4)
┌──────┬─────┬─────┬──────────┐
│ 이름 ┆ 나이 ┆ 점수 ┆ 합격여부 │
│ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ i64 ┆ bool │
╞══════╪═════╪═════╪══════════╡
│ 철수 ┆ 20 ┆ 80 ┆ true │
│ 영희 ┆ 25 ┆ 95 ┆ true │
│ 민수 ┆ 22 ┆ 70 ┆ false │
└──────┴─────┴─────┴──────────┘
true는 참, false는 거짓을 의미한다.
- 새 열을 만들 때
df = df.with_columns(
계산식.alias("새 열 이름")
)
alias()는 새로 만들 열의 이름을 정하는 역할을 한다.
8. 데이터 정렬하기
특정 열을 기준으로 데이터를 정렬할 수 있다.
점수가 낮은 순서대로 정렬하려면 다음과 같이 작성한다.
df.sort("점수")
점수가 높은 순서대로 정렬하려면 descending=True를 추가한다.
df.sort("점수", descending=True)
descending=True는 내림차순 정렬을 의미한다.
9. 평균, 합계, 최댓값 구하기
숫자 열에 대해 여러 계산을 할 수 있다.
점수 평균을 구하려면 mean()
df.select(pl.col("점수").mean())
점수 합계를 구하려면 sum()
df.select(pl.col("점수").sum())
가장 높은 점수를 구하려면 max()
df.select(pl.col("점수").max())
가장 낮은 점수를 구하려면 min()
df.select(pl.col("점수").min())
데이터 개수를 세려면 count()
df.select(pl.col("점수").count())
10. CSV 파일로 저장하기
수정한 데이터를 다시 CSV 파일로 저장할 수 있다.
df.write_csv("result.csv")
pandas에서는 to_csv()를 사용하지만, polars에서는 write_csv()를 사용한다.
11. polars 기본 흐름
- 파일을 읽는다.
- 데이터를 미리 본다.
- 필요한 열을 선택한다.
- 조건에 맞는 행을 선택한다.
- 새 열을 만든다.
- 정렬하거나 계산한다.
- 파일로 저장한다.
- 예시
import polars as pl
df = pl.read_csv("data.csv")
result = df.filter(pl.col("점수") >= 80)
result = result.sort("점수", descending=True)
result.write_csv("result.csv")
data.csv파일을 읽는다.점수가 80점 이상인 행만 고른다.- 점수가 높은 순서대로 정렬한다.
- 결과를
result.csv로 저장한다.
핵심 문법 요약
- 특정 열 선택
df.select("열이름")
- 여러 열 선택
df.select(["열1", "열2"])
- 조건에 맞는 행 선택
df.filter(pl.col("열이름") 조건)
- 새 열 만들기
df = df.with_columns(
계산식.alias("새열이름")
)
- 정렬하기
df.sort("열이름")
- CSV로 저장하기
df.write_csv("파일명.csv")
pandas와 다른 점
pandas는 열을 고를 때 다음처럼 작성하는 경우가 많다.
df["점수"]
polars는 열을 가리킬 때 다음 표현을 자주 사용한다.
pl.col("점수")
pandas는 조건으로 행을 고를 때 다음처럼 작성한다.
df[df["점수"] >= 80]
polars는 같은 작업을 다음처럼 작성한다.
df.filter(pl.col("점수") >= 80)'Python' 카테고리의 다른 글
| Pandas 기초 사용법 (0) | 2026.08.11 |
|---|