print(
join_data.groupby(["payment_month", "item_name"])[["quantity", "total_price"]].sum()
)
🧮 pandas로 거래 데이터 분석 시작하기 – 데이터 읽기부터 검산까지 (실습 중심)
이번 글에서는 pandas를 활용하여 실제 거래 데이터를 기반으로 한 분석 흐름을 정리해봤습니다.
실습 중심으로 구성했으며, 데이터 읽기 → 병합 → 가공 → 검산까지 단계별로 다뤘습니다.
📌 사용 데이터:
- customer_master.csv
- transaction_1.csv, transaction_2.csv
- transaction_detail_1.csv
- item_master.csv
1️⃣ 데이터 불러오기
먼저 각 CSV 파일을 불러옵니다. read_csv()는 기본적인 데이터 읽기 함수입니다
import pandas as pd
# 고객, 거래, 상세, 상품 데이터 불러오기
master = pd.read_csv('1장/customer_master.csv')
trans1 = pd.read_csv('1장/transaction_1.csv')
trans2 = pd.read_csv('1장/transaction_2.csv')
detail = pd.read_csv('1장/transaction_detail_1.csv')
item = pd.read_csv('1장/item_master.csv')
2️⃣ 거래 데이터 병합 (trans1 + detail)
거래 상세 데이터와 거래 본 데이터를 transaction_id 기준으로 병합합니다.
python
복사편집
# 거래 정보 병합
join_data = pd.merge(
detail,
trans1[["transaction_id", "payment_date", "price"]],
on="transaction_id",
how="left"
)
3️⃣ 상품 정보 병합 (item_id 기준)
item_master.csv에서 item_id를 기준으로 item_name을 추가합니다.
join_data = pd.merge(
join_data,
item[["item_id", "item_name"]],
on="item_id",
how="left"
)
4️⃣ 날짜 처리 및 월 파생변수 생성
거래 일자(payment_date)는 문자열(string) 형태로 되어 있으므로,
이를 datetime 형식으로 변환한 뒤, 연월 정보(YYYYMM)만 추출해 새로운 컬럼 payment_month를 생성합니다.
# 문자열을 날짜(datetime) 형식으로 변환
join_data["payment_date"] = pd.to_datetime(join_data["payment_date"])
# 연도와 월만 추출해 새로운 열 추가
join_data["payment_month"] = join_data["payment_date"].dt.strftime("%Y%m")
🔍 여기서 사용된 문법 상세 설명
join_data["payment_date"].dt.strftime("%Y%m")
이 코드는 다음과 같은 과정을 거칩니다:
단계설명
| .dt | datetime64 형식의 열에 대해 날짜 전용 속성 접근자 |
| .strftime() | 날짜 데이터를 원하는 포맷의 문자열(String) 로 변환 |
| "%Y%m" | 연도 4자리 + 월 2자리 → 예: "202402" |
📌 포맷 코드 예시
포맷의미예시
| %Y | 연도 (4자리) | 2024 |
| %m | 월 (2자리) | 06 |
| %B | 월 이름 | June |
| %d | 일 (2자리) | 28 |
5️⃣ 총 매출 계산
단가(price) × 수량(quantity)을 곱해 총 결제 금액을 계산합니다.
join_data["total_price"] = join_data["price"] * join_data["quantity"]
6️⃣ 데이터 검산 – 월별, 상품별 매출 합계
✅ 월별 매출 합계
print(join_data.groupby("payment_month")["total_price"].sum())
✅ 월별 × 상품별 매출
print(
join_data.groupby(["payment_month", "item_name"])[["quantity", "total_price"]].sum()
)
✅ pivot_table로 보기 좋게 정리
pivot = pd.pivot_table(
join_data,
index="payment_month",
columns="item_name",
values="total_price",
aggfunc="sum",
fill_value=0
)
print(pivot)
'인공지능' 카테고리의 다른 글
| 데이터 전처리 및 집계 분석 (0) | 2025.07.01 |
|---|---|
| 데이터 정리 후 출력 (0) | 2025.07.01 |
| 데이터 정리하기 (1) | 2025.06.30 |
| 데이터 가시화 (1) | 2025.06.29 |
| 데이터 분석을 위한 파이썬 (0) | 2025.06.29 |