C
Python/데이터/Lesson 27

Pandas 소개

1시간·theory
이 챕터
2/2

Pandas 소개

🎯 이 lesson 을 읽고 나면

이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.

  • ✅ Python 이 AI/데이터 표준 언어가 됐는지
  • ✅ Python 3.x 기준 venv + requirements.txt 셋업
  • ✅ print / input / type / dir 4개 내장 함수

학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.

Pandas — 코드 + 실행 결과

Pandas = 표 (table) 다루는 표준. DataFrame = Excel 시트. CSV·SQL·JSON 읽고 쓰기 한 줄.


1. 설치 + DataFrame 만들기

bash
$ pip install pandas
python
import pandas as pd

df = pd.DataFrame({
    "이름": ["홍길동", "이몽룡", "성춘향"],
    "나이": [28, 30, 25],
    "점수": [85, 92, 78],
})
print(df)
#    이름  나이  점수
# 0  홍길동  28   85
# 1  이몽룡  30   92
# 2  성춘향  25   78

2. CSV·Excel 읽기·쓰기

python
# 읽기
df = pd.read_csv("students.csv")
df = pd.read_excel("data.xlsx")
df = pd.read_json("data.json")

# 쓰기
df.to_csv("out.csv", index=False, encoding="utf-8-sig")    # 한국어 안 깨짐
df.to_excel("out.xlsx", index=False)

3. 미리보기·통계

python
df.head(3)           # 처음 3 행
df.tail(3)           # 끝 3 행
df.shape             # (3, 3)
df.columns           # Index(['이름', '나이', '점수'])
df.describe()        # 평균·표준편차·min·max 자동
df.info()            # 컬럼별 타입·null 개수

4. 컬럼·행 선택

python
df["이름"]                   # Series (1 컬럼)
df[["이름", "점수"]]         # DataFrame (여러 컬럼)

df.iloc[0]                   # 0번 행 (위치 기반)
df.iloc[0:2]                 # 0~1번 행
df.loc[df["나이"] >= 28]     # 조건 (28살 이상)

5. 추가·수정

python
# 새 컬럼
df["등급"] = df["점수"].apply(lambda x: "A" if x >= 90 else "B")

# 컬럼 일괄 변경
df["나이"] = df["나이"] + 1     # 모두 +1

# 행 추가
df.loc[len(df)] = ["변학도", 35, 60, "F"]
print(df)

6. 그룹별 집계

python
df = pd.DataFrame({
    "지역": ["서울", "부산", "서울", "부산"],
    "매출": [100, 50, 150, 80],
})

# 지역별 합계
print(df.groupby("지역")["매출"].sum())
# 지역
# 부산   130
# 서울   250

# 여러 통계
print(df.groupby("지역")["매출"].agg(["sum", "mean", "count"]))

7. 정렬·결측치

python
df.sort_values("점수", ascending=False)        # 점수 내림차순
df.drop_duplicates()                            # 중복 제거
df.dropna()                                     # null 행 제거
df.fillna(0)                                    # null → 0 채움

한 줄 요약

read_csv + groupby.sum/mean + loc[조건] + to_excel 4개면 분석 90%.

💻 Pandas 기초
import pandas as pd
import numpy as np

# Series
s = pd.Series([10, 20, 30], index=['a','b','c'])
print(s.dtype, s.shape)

# DataFrame
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35],
    'score': [85.5, 90.0, 78.5]
})

# 기본 정보
print(df.shape)      # (3, 3)
print(df.dtypes)     # 열별 자료형
print(df.info())     # 결측치 포함
print(df.describe()) # 기술 통계

# CSV 읽기/쓰기
df.to_csv('data.csv', index=False, encoding='utf-8-sig')
df = pd.read_csv('data.csv')

# Excel
df.to_excel('data.xlsx', index=False)
df = pd.read_excel('data.xlsx')

💡 💡 Pandas 2.0 Copy-on-Write

Pandas 2.0에서 Copy-on-Write 활성화:

pd.options.mode.copy_on_write = True

뷰를 수정해도 원본이 변경되지 않습니다. SettingWithCopyWarning이 사라집니다!

Python은 간결하고 읽기 쉬운 문법으로 다양한 분야에 활용됩니다. 인터프리터 언어로 REPL 환경에서 즉시 실행 가능합니다. PEP 8 코딩 스타일 가이드를 따르고, Black/autopep8으로 자동 포맷팅합니다. 타입 힌트(type hints)로 코드 가독성과 IDE 지원을 향상시킵니다. pip로 패키지 관리, venv/conda로 가상환경을 구성합니다.

🐍 실행해보기 — Pandas 소개

위 개념을 실제로 코드로 실행해보세요. 값을 바꿔가며 어떻게 동작하는지 직접 확인하는 게 가장 빠른 학습.
✏️ Python 코드
📟 콘솔 출력
▶ 실행 버튼을 눌러보세요
🐍 Pyodide로 실제 Python 실행 — 첫 실행 시 로딩 3~5초 소요

🤖 AI 에게 이렇게 요청해보세요

이 lesson 의 개념을 알면 AI 에게 구체적으로 지시할 수 있습니다. 막연한 "고쳐줘" 가 아니라 어휘를 가진 요청 — 그게 토큰 절약의 출발점입니다.

  • "이 for 루프를 numpy 벡터 연산으로 바꿔줘"
  • "이 데이터 정제를 pandas method chaining 으로 리팩토링해줘"

왜 이게 토큰을 줄이나

개념을 모를 땐 AI 답변을 받고도 "그게 뭐예요?" 를 다시 물어야 합니다. 그 "다시 물음" 이 토큰을 잡아먹습니다. 개념 한 번 익혀두면 대화가 한 번에 끝납니다.

먼저 읽으면 좋은 개념: NumPy 입문
다음 추천: 바이브 코딩
Pandas 입문 - Python