DataFrame이란
Pandas의 DataFrame은 그냥 엑셀 표라고 생각하면 됩니다. 행(row)이 하나의 기록, 열(column)이 하나의 항목입니다.
import pandas as pd
df = pd.read_csv("sales.csv") # 파일 열기
df.head() # 앞 5줄 보기
df.info() # 열 이름, 타입, 빈 값 개수
꼭 알아야 할 5가지
# 1. 열 고르기
df[["region", "amount"]]
# 2. 조건으로 행 고르기
df[df["amount"] > 100]
# 3. 그룹별 합계 (이 수업의 핵심!)
df.groupby("region")["amount"].sum()
# 4. 정렬
df.sort_values("amount", ascending=False)
# 5. 빈 값 채우기
df.fillna(0)
1단계에서 반복문으로 썼던 "지역별 합계"가 3번 한 줄로 끝납니다.
두 표 합치기
두 CSV에 공통 열이 있으면 엑셀의 VLOOKUP처럼 붙일 수 있습니다.
regions = pd.read_csv("regions.csv") # region, manager
merged = df.merge(regions, on="region")
저장하기
df.to_csv("out.csv", index=False)
df.to_parquet("out.parquet") # pip install pyarrow
Parquet은 5단계에서 설명합니다. 지금은 "CSV보다 작고 빠른 저장 형식" 정도로만.
Pandas ↔ Spark 미리보기
나중에 배울 Spark는 Pandas와 거의 같은 단어를 씁니다. 지금 익혀두면 그대로 써먹습니다.
| Pandas | Spark |
|---|---|
pd.read_csv() | spark.read.csv() |
df[df.a > 1] | df.filter(df.a > 1) |
df.groupby("k").sum() | df.groupBy("k").sum() |
df.head() | df.show() |
연습
- 공공데이터포털에서 CSV 하나를 받아
read_csv→head()→info() - 열 하나를 골라
groupby합계를 내고 큰 순서로 정렬 - 결과를 CSV와 Parquet으로 저장하고 파일 크기 비교