파이썬 pandas 데이터 분석 입문 · 2장
pandas Series와 DataFrame 기초
Series·DataFrame 만들기, shape·columns 확인, 열 계산으로 새 열 만들기
pandas의 모든 작업은 두 가지 자료구조 위에서 이뤄집니다. 한 줄짜리 Series와, 여러 Series를 나란히 붙인 표 DataFrame입니다.
Series — 이름표가 붙은 한 줄 데이터
Series는 값과 그 값의 이름표(인덱스)를 함께 가진 1차원 데이터입니다.
Pythonimport pandas as pd
s = pd.Series([30, 12, 18], index=['월', '화', '수'], name='판매량')
print(s)
결과월 30
화 12
수 18
Name: 판매량, dtype: int64
인덱스로 값을 꺼내고, 평균 같은 계산을 바로 할 수 있습니다.
Pythons['화'] # 12
s.mean() # 20.0
DataFrame — 열마다 이름이 있는 표
DataFrame은 엑셀 시트처럼 행과 열이 있는 2차원 표입니다. 딕셔너리의 키가 열 이름, 값 리스트가 열 내용이 됩니다. 이 책 전체에서 쓸 카페 매출 데이터를 만들어 봅시다.
Pythonsales = pd.DataFrame({
'date': ['2026-03-01', '2026-03-01', '2026-03-02', '2026-03-02',
'2026-03-03', '2026-03-03', '2026-03-04', '2026-03-04'],
'store': ['강남', '홍대', '강남', '홍대', '강남', '홍대', '강남', '홍대'],
'menu': ['아메리카노', '라떼', '라떼', '아메리카노', '아메리카노', '케이크', '케이크', '라떼'],
'qty': [30, 12, 18, 25, 28, 7, 9, 15],
'price': [4500, 5000, 5000, 4500, 4500, 6500, 6500, 5000],
})
print(sales)
결과 date store menu qty price
0 2026-03-01 강남 아메리카노 30 4500
1 2026-03-01 홍대 라떼 12 5000
2 2026-03-02 강남 라떼 18 5000
3 2026-03-02 홍대 아메리카노 25 4500
4 2026-03-03 강남 아메리카노 28 4500
5 2026-03-03 홍대 케이크 7 6500
6 2026-03-04 강남 케이크 9 6500
7 2026-03-04 홍대 라떼 15 5000
왼쪽의 0부터 7까지가 인덱스입니다. 따로 정하지 않으면 0부터 번호가 붙습니다.
표의 크기와 열 이름 확인하기
Pythonsales.shape # (8, 5) → 8행 5열
sales.columns.tolist() # ['date', 'store', 'menu', 'qty', 'price']
새 열 만들기 — 벡터 연산
pandas에서는 반복문 없이 열끼리 바로 계산합니다. 같은 행끼리 짝지어 계산되는데, 이것을 벡터 연산이라고 합니다.
Pythonsales['revenue'] = sales['qty'] * sales['price']
sales.head(3)
결과 date store menu qty price revenue
0 2026-03-01 강남 아메리카노 30 4500 135000
1 2026-03-01 홍대 라떼 12 5000 60000
2 2026-03-02 강남 라떼 18 5000 90000
직접 해 보기
revenue 열을 1,000으로 나눠 천 원 단위 매출을 구해 보세요. 결과는 새 Series입니다. 원본 sales는 다음 장에서도 그대로 쓰므로 열을 추가하지 않고 계산만 해 봅니다.
Pythonrevenue_k = sales['revenue'] / 1000
revenue_k.head(3) # 135.0, 60.0, 90.0