Post

Pandas 데이터 분석: 실전 프로젝트 사례

실제 데이터 분석에서 Pandas를 활용하여 데이터를 전처리하고 분석하는 과정

Pandas는 데이터 분석에서 가장 널리 사용되는 라이브러리로, 다양한 실무 프로젝트에서 활용됩니다. 이번 글에서는 실제 데이터 분석에서 Pandas를 활용하여 데이터를 전처리하고 분석하는 과정을 간단한 사례를 통해 살펴보겠습니다.

1. 데이터 준비: 판매 데이터 분석

데이터셋 설명

  • 가상의 판매 데이터로, 각 지역에서 특정 날짜에 발생한 매출과 관련된 정보를 담고 있습니다.

예제 데이터

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import pandas as pd

# 데이터프레임 생성
data = {
    "Date": ["2023-01-01", "2023-01-01", "2023-01-02", "2023-01-02", "2023-01-03"],
    "Region": ["North", "South", "North", "South", "North"],
    "Product": ["A", "A", "B", "B", "A"],
    "Sales": [100, 200, 150, 300, 250],
    "Profit": [30, 50, 45, 80, 60]
}
df = pd.DataFrame(data)
print(df)
# 출력:
#          Date Region Product  Sales  Profit
# 0  2023-01-01  North       A    100      30
# 1  2023-01-01  South       A    200      50
# 2  2023-01-02  North       B    150      45
# 3  2023-01-02  South       B    300      80
# 4  2023-01-03  North       A    250      60

2. 데이터 전처리

1) 데이터 타입 변환

날짜 데이터를 datetime 형식으로 변환하여 시간 기반 분석이 가능하도록 준비합니다.

1
2
3
# 날짜 데이터 변환
df["Date"] = pd.to_datetime(df["Date"])
print(df.info())
2) 결측치 확인 및 처리

결측치가 있는지 확인하고, 필요시 대체하거나 제거합니다.

1
2
# 결측치 확인
print(df.isnull().sum())

3. 데이터 분석

1) 일별 매출 합계 계산

groupby()를 사용하여 날짜별 매출 합계를 계산합니다.

1
2
3
4
5
6
7
8
9
# 일별 매출 합계
daily_sales = df.groupby("Date")["Sales"].sum()
print(daily_sales)
# 출력:
# Date
# 2023-01-01    300
# 2023-01-02    450
# 2023-01-03    250
# Name: Sales, dtype: int64
2) 지역별 평균 이익 분석

지역별 평균 이익을 계산하여 성과를 비교합니다.

1
2
3
4
5
6
7
8
# 지역별 평균 이익
region_profit = df.groupby("Region")["Profit"].mean()
print(region_profit)
# 출력:
# Region
# North    45.0
# South    65.0
# Name: Profit, dtype: float64
3) 제품별 매출 분석

각 제품의 총 매출을 확인합니다.

1
2
3
4
5
6
7
8
# 제품별 총 매출
product_sales = df.groupby("Product")["Sales"].sum()
print(product_sales)
# 출력:
# Product
# A    550
# B    450
# Name: Sales, dtype: int64

4. 데이터 시각화

분석 결과를 시각적으로 표현하여 데이터를 쉽게 이해할 수 있습니다.

1) 일별 매출 변화
1
2
3
4
5
6
7
import matplotlib.pyplot as plt

# 일별 매출 시각화
daily_sales.plot(kind="line", title="Daily Sales")
plt.xlabel("Date")
plt.ylabel("Sales")
plt.show()
2) 지역별 평균 이익 비교
1
2
3
4
5
# 지역별 이익 시각화
region_profit.plot(kind="bar", title="Average Profit by Region", color=["skyblue", "orange"])
plt.xlabel("Region")
plt.ylabel("Profit")
plt.show()

5. 인사이트 도출

  1. 일별 매출 변화
    • 2023-01-02에 매출이 가장 높았으며, 그 이후 매출이 감소한 것을 확인할 수 있습니다.
  2. 지역별 평균 이익
    • South 지역의 평균 이익이 North 지역보다 높음을 알 수 있습니다.
  3. 제품별 매출 비교
    • Product A의 총 매출이 Product B보다 높아, 더 인기 있는 제품임을 알 수 있습니다.

6. 데이터 저장

분석 결과를 저장하여 향후 보고서나 모델링에 사용할 수 있습니다.

CSV 파일로 저장

1
2
3
daily_sales.to_csv("daily_sales.csv")
region_profit.to_csv("region_profit.csv")
product_sales.to_csv("product_sales.csv")

정리

  • Pandas는 데이터를 전처리, 분석, 시각화하여 중요한 인사이트를 도출할 수 있는 강력한 도구입니다.
  • groupby(), plot(), to_csv()와 같은 기능을 활용하여 데이터를 효율적으로 다룰 수 있습니다.
  • 실전 프로젝트에서는 데이터의 품질과 분석 목적에 따라 적절한 조작 및 시각화 방법을 선택해야 합니다.

파이썬 데이터 분석 시리즈 종료:

This post is licensed under CC BY 4.0 by the author.