인공지능

데이터 분석을 위한 파이썬2

존카터 2025. 6. 29. 10:59
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