[Python] Pandas 핵심 요약

감자·2026년 1월 12일

microsoft_dataschool

목록 보기
2/28
post-thumbnail

01. Pandas란?

데이터 분석 및 조작을 위한 파이썬 핵심 라이브러리. 통계 분석에 주로 사용됨

🚀 주요 특징

  • 고성능: 대용량 데이터의 빠른 읽기/쓰기 지원
  • 유연성: 데이터 재구성(Reshaping), 피벗(Pivot), 그룹화(Groupby) 용이
  • 편의성: 서로 다른 포맷의 데이터 병합(Merge) 및 조인(Join) 지원

02. 데이터 구조 (Data Structures)

1) Series (시리즈)

1차원 배열 형태의 데이터 구조. 데이터(Value)와 인덱스(Index)가 매칭됨

class pandas.Series(data=None, index=None, dtype=None, name=None, copy=None)
  • data: 실제 값. ndarray, Iterable, dict, scalar 값 등 허용
  • index: 데이터의 이름표. 해시 가능(Hashable)해야 하며 데이터 길이와 동일해야 함 (기본값: RangeIndex)
  • dtype: 데이터 타입 지정 (문자열, numpy dtype 등)
  • name: 시리즈의 이름 지정
  • copy: 입력 데이터 복사 여부 결정 (입력이 Series나 1차원 ndarray일 때 적용)

2) DataFrame (데이터프레임)

행(Row)과 열(Column)로 구성된 2차원 테이블 형태의 데이터 구조

class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)
  • data: 실제 값. ndarray, Iterable, dict, DataFrame 등
  • index: 행(Row)의 이름표 (기본값 0부터 시작)
  • columns: 열(Column)의 이름표. 각 열의 제목
  • dtype: 데이터 타입 지정
  • copy: 입력 데이터 복사 여부

💡 데이터프레임 생성 방식

  • Dict of Series: 길이가 다른 Series들을 묶으면 인덱스 기준 자동 정렬 (빈 곳은 NaN)
  • Index/Column 지정: 생성 시 직접 지정하여 순서 변경이나 새로운 열(NaN) 생성 가능
  • List of Dicts: 딕셔너리 리스트를 넣으면 Key가 컬럼명이 됨 (없는 데이터는 NaN)

03. 인덱싱과 슬라이싱 (Indexing & Slicing)

Series 인덱싱 차이점

  • iloc[0:3] (위치 기반): 0부터 2까지 (3 미포함, Python 리스트와 동일)
  • loc['a':'c'] (레이블 기반): 'a'부터 'c'까지 (끝점 'c' 포함)

DataFrame 선택 및 필터링

작업 내용사용 문법결과 형식
열 선택df[col]Series
행 선택 (라벨)df.loc[label]Series
행 선택 (위치)df.iloc[loc]Series
행 슬라이싱df[start:stop]DataFrame
조건 필터링df[bool_vec]DataFrame

04. 열(Column) 조작

DataFrame은 Series를 담고 있는 딕셔너리(Dictionary)처럼 취급 가능

# 선택
df["one"]            # 라벨(열 이름)로 선택

# 추가
df["three"] = df["one"] * 2  # 연산 결과로 새로운 열 생성

# 삭제
del df["two"]        # 삭제 (반환값 없음)
val = df.pop("three") # 삭제 후 해당 열 반환

# 삽입
df.insert(1, "new_col", data) # 특정 위치(인덱스 1)에 열 삽입

05. 데이터 입출력 (I/O)

주요 지원 포맷

포맷읽기 (Reader)쓰기 (Writer)비고
CSVread_csvto_csv텍스트 파일
JSONread_jsonto_json텍스트 파일
Excelread_excelto_excel바이너리 (.xlsx)
SQLread_sqlto_sql데이터베이스

pd.read_csv() 주요 파라미터

  • filepath_or_buffer: 파일 경로 (URL, 파일 객체 포함)
  • sep: 필드 구분자 (기본값 ,)
  • header: 헤더 행 위치 (0이면 첫 줄을 컬럼명으로 사용)
  • names: 열 이름 직접 지정 (헤더 없을 때 유용)
  • index_col: 인덱스로 사용할 열 번호나 이름
  • usecols: 필요한 열만 선택해서 로드 (메모리 절약)
  • dtype: 열별 데이터 타입 지정 (예: {'id': int})
  • encoding: 인코딩 지정 (utf-8, cp949, euc-kr 등)
  • na_values: 결측치(NaN)로 인식할 값 지정
  • parse_dates: 날짜 형식으로 파싱할 열 지정

06. 데이터 탐색 (Inspection)

데이터 확인 및 요약

  • head(n) / `tail(n): 상위 또는 하위 n`개 행 반환
  • describe(): 요약 통계량 반환 (개수, 평균, 표준편차, 사분위수 등)
  • percentiles: 보고 싶은 백분위수 지정
  • include/exclude: 특정 데이터 타입 포함/제외

무작위 추출 (Sampling)

  • sample(n, frac, replace, ...)
  • n: 반환할 개수
  • frac: 전체 대비 반환할 비율 (예: 0.5)
  • replace: 복원 추출(중복 허용) 여부
  • random_state: 재현성을 위한 난수 시드(Seed) 고정

도움이 되셨다면 ❤️와 댓글 부탁드립니다!

profile
제 별명이 감자입니다

0개의 댓글