판다스 기본 — 시리즈와 데이터프레임

교재 6.1 ~ 6.3 절. 판다스의 두 핵심 자료구조 Series · DataFrame 과 자료형, 결손값을 정리합니다.


1. 시리즈 (Series) — 1차원 레이블 배열

같은 자료형의 데이터를 저장하는 인덱싱된 1차원 배열.

PYTHON
import pandas as pd
 
se = pd.Series([10, 20, 30, 40])
print(se)
# 0    10
# 1    20
# 2    30
# 3    40
# dtype: int64

1.1 인덱싱 — 리스트와 같은 문법

PYTHON
se[0]   # 10
se[1]   # 20

1.2 인덱스를 레이블로 변경

PYTHON
se.index = ['a', 'b', 'c', 'd']
se['a']  # 10

1.3 딕셔너리로부터 생성

PYTHON
income = {'1월': 80, '2월': 95, '3월': 120, '4월': 110}
income_se = pd.Series(income)
income_se.max()   # 120
income_se.mean()  # 101.25

2. 결손값 (Missing Value)

정제되지 않은 현실 데이터에는 비어있는 값이 많습니다. 판다스는 이를 NaN(Not a Number) 으로 표기하고, 전용 함수로 탐지·처리합니다.

PYTHON
import numpy as np
 
s = pd.Series([1, 2, np.nan, 4])
s.isna()
# 0    False
# 1    False
# 2     True
# 3    False

세 가지 핵심 함수:

함수역할
isna()Boolean 으로 결손 여부 반환
dropna()결손 포함 행/열 제거
fillna(value)결손을 특정 값으로 채움

3. 데이터프레임 (DataFrame) — 2차원 테이블

3.1 왜 2차원이 필요한가?

수익뿐 아니라 지출도 같이 관리하고 싶다면 1D Series 로는 부족합니다.

PYTHON
income_se   = pd.Series({'1월': 80, '2월': 95, '3월': 120, '4월': 110})
expenses_se = pd.Series({'1월': 50, '2월': 55, '3월': 70,  '4월': 65 })
 
df = pd.DataFrame({'수익': income_se, '지출': expenses_se})
print(df)
#      수익  지출
# 1월   80   50
# 2월   95   55
# 3월  120   70
# 4월  110   65

3.2 Series 와의 차원 비교

  • income_se 는 월 이름이 인덱스일 뿐이므로 실질적으로 1차원
  • df 는 행(월) + 열(수익/지출) 2차원

3.3 출력 모양

  • 주피터 노트북에서는 df 만 입력하면 HTML 표
  • print(df) 는 텍스트 형식

4. 자료형 요약

자료구조차원예시
pd.Series1D월별 수익, 한 열
pd.DataFrame2D여러 열을 가진 표 전체
pd.Index / pd.MultiIndex레이블 메타데이터행·열 이름 관리

📝 Checkpoint

Quiz

판다스 기본 Checkpoint

Q 1 / 3

Series의 특징으로 옳은 것은?


🔗 다음 학습