끄적이는 개발노트

260518_강의 정리 (Pandas) 본문

Python

260518_강의 정리 (Pandas)

크런키스틱 2026. 5. 18. 14:08
728x90

■ Pandas

  • 정의
    • NumPy 기반으로 만들어진 Python의 대표적인 데이터 분석 라이브러리
      • NumPy의 빠른 수치계산 기능을 기반으로 동작
      • 엑셀/SQL 같은 테이블 데이터를 쉽게 다룸
      • 데이터 전처리, 통계, 시계열 처리 등에 특화
  • 특징
    1. 데이터 분석에 최적화된 고수준 자료구조 제공
    2. NumPy 기반
      • Pandas 내부 연산은 대부분 NumPy ndarrary 기반으로 동작
    3. 테이블 구조 지원
      • Pandas는 엑셀/SQL 같은 구조를 다루기 쉬움
    4. 인덱스 (Index) 기반 데이터 관리
      • Pandas는 단순 배열 번호가 아닌 label 기반 인덱스 가능
  • 자료구조
    • Series (1차원)
      • 하나의 열(column)같은 구조
      • NumPy 배열과 유사
      • 하나의 변수 표현
    • DataFrame (2차원)
      • 엑셀 테이블 형태
      • 행(row) + 열(column) + 인덱스(index)
  • 내부 구조 이해
    • NumPy ndarray + dict 구조
      • DataFrame은 개념적으로 dict(column_name → Series) 형태에 가까움
      • 열(column) 중심 저장 방식
  • 열 중심 저장 (Column-Oriented)
    • 열(column) 단위로 저장
    • 데이터 분석은 보통 열 전체 계산이 많기 때문에 열 중심이 더 빠르게 수행됨
  • 벡터화 (Vectorized Operation)
    • Pandas는 반복문보다 배열 전체 연산을 지향
    • 내부적으로 NumPy/C 기반 연산 사용 → 처리 빠름
    • 코드 간결
    • ex) df["age"] + 1 -> 모든 값에 자동 적용
  • 데이터 전처리 (Data Transformation)
    • Pandas의 가장 핵심 기능
      1. 결측값 처리
        • df.dropna()
        • df.fillna(0)
      2. 데이터 필터링
        • df[df["age"] > 20]
      3. 정렬
        • df.sort_values("age")
      4. 그룹화 (GroupBy)
        • df.groupby("gender").mean()
      5. 데이터 병합 (Merge)
        • pd.merge(df1, df2, on="id")
        • SQL JOIN과 유사
  • 통계 함수와 상관분석
    • 기술통계 : df.describe()
      • 평균 (mean)
      • 표준편차 (std)
      • 최소값 (min)
      • 최대값 (max)
    • 상관분석 : df.corr()
      • -1 ~ 1
  • 문자열 처리
    • Pandas는 벡터화된 문자열 함수 제공
    • ex) df["name"].str.upper()
  • 데이터 요약 기능
    • 빈도수 계산
      • df["gender"].value_counts()
    • 집계 함수
      • df.mean()
      • df.sum()
      • df.max()
      • df.min()
  • 데이터에 함수 적용
    1. map
      • Series에 적용
      • ex) df["age"].map(lambda x: x+1)
    2. apply
      • 행/열 단위 적용
      • ex) df.apply(np.sum)
    3. applymap
      • DataFrame 전체 원소 적용
      • ex) df.applymap(str)
  • 계층적 인덱스 (MultiIndex)
    • 인덱스를 여러 단계로 구성 가능
    • 아래 표에서 (서울, 2024) (서울, 2025) 처럼 관리 가능
지역 연도 매출
서울 2024 100
서울 2025 120

 

  • 시계열 데이터 처리
    • Pandas의 매우 강력한 기능 중 하나
      1. 날짜 변환
        • pd.to_datetime(df["date"])
      2. 날짜 인덱스 설정
        • df.set_index("date")
      3. 리샘플링 (Resampling)
        • df.resample("M").mean()
      4. 이동평균
        • df["value"].rolling(7).mean()
  • 데이터 저장 포맷
    • CSV
      • 쉼표 기반 텍스트 파일
      • df.to_csv("data.csv")
    • JSON
      • 웹/API 데이터 형식
      • df.to_json()
    • Pickle
      • Python 객체 자체 저장
      • df.to_pickle("data.pkl")
    • Parquet
      • 컬럼 기반 저장 포맷
      • df.to_parquet("data.parquet")
  • Arrow (Apache Arrow)
    • 언어 간 데이터 교환용 공통 메모리 포맷
    • Python ↔ R ↔ Spark ↔ Pandas 간 데이터 이동을 빠르게 해줌
    • 특징
      • 컬럼 기반 구조
      • 메모리 공유 가능
      • 복사 최소화
      • 고속 처리
      • Parquet과 함께 자주 사용
  • Serialization / De-Serialization
    • 직렬화 (Serialization)
      • 객체 저장 가능한 형태 변환
      • ex) DataFrame → CSV
    • 역직렬화 (De-Serialization)
      • 저장된 파일 → 객체 복원
      • ex) CSV → DataFrame
  • Pandas와 SQL 대응 관계
SQL Pandas
SELECT df[]
WHERE filter
GROUP BY groupby
ORDER BY sort_values
JOIN merge
COUNT count
AVG mean

 

  • 데이터베이스 연동
    • SQL 데이터를 직접 읽을 수 있음
      • pd.read_sql(query, conn)
      • df.to_sql()
  • Pandas와 Excel
    • 엑셀 파일도 직접 처리 가능
      • pd.read_excel("data.xlsx")
      • df.to_excel("result.xlsx")
  • statsmodels와 연동
    • Pandas DataFrame은 회귀분석, 시계열 분석, 통계 모델링에 바로 사용 가능
728x90

'Python' 카테고리의 다른 글

260520_강의 정리 (Data Summerization & EDA)  (0) 2026.05.20
260519_강의 정리 (데이터 전처리)  (0) 2026.05.20
260512_강의 정리 (NumPy)  (0) 2026.05.13
260513_강의 정리 (Matplotlib)  (0) 2026.05.13
260415_강의 정리 (Flask)  (1) 2026.04.15