본문 바로가기
Python

파이썬 pandas를 이용한 데이터 분석 예제

by 노마드 산코디 2023. 9. 30.
728x90

이번 포스팅에서는 파이썬 Pandas를 활용하여 실제 데이터셋을 다루고, 데이터를 분석하고 시각화하는 다양한 예제를 살펴보려고 합니다. Pandas를 사용하면 데이터를 효율적으로 불러오고 정리하며, 데이터셋에서 유용한 인사이트를 도출하는 데 도움이 되는 강력한 도구입니다. 다양한 예제를 통해 데이터 분석 능력을 향상시키는 데 도움이 될 것입니다. 그럼 어떤 내용이 있는지 살펴보도록 하겠습니다.



 


1. 가상의 매출 데이터

가상의 매출 데이터를 표현한 CSV 파일 (sales_data.csv)을 사용합니다. 이 데이터셋에는 제품, 판매량, 가격 및 판매일자 등의 열이 포함되어 있습니다.

import pandas as pd

# CSV 파일에서 데이터 불러오기
df = pd.read_csv('sales_data.csv')

# 데이터 프레임의 처음 5개 행 출력
print(df.head())

# 데이터 프레임의 기본 정보 출력
print(df.info())

# 특정 열(예: 판매량)의 기술통계 정보 출력
print(df['판매량'].describe())

# 특정 열(예: 제품)의 고유한 값 출력
print(df['제품'].unique())

# 특정 열(예: 제품)의 값별 개수 출력
print(df['제품'].value_counts())

# 판매일자를 날짜/시간 형식으로 변환
df['판매일자'] = pd.to_datetime(df['판매일자'])

# 월별 매출 합산
monthly_sales = df.resample('M', on='판매일자')['매출'].sum()

# 시각화: 월별 매출 그래프
import matplotlib.pyplot as plt
monthly_sales.plot(kind='bar', xlabel='월', ylabel='매출', title='월별 매출')
plt.show()


위의 예제에서는 데이터를 불러오고 기초적인 데이터 탐색을 수행한 후, 판매일자를 날짜/시간 형식으로 변환하고 월별 매출을 시각화하는 단계를 포함하고 있습니다. 이것은 Pandas를 사용하여 데이터를 불러오고 처리하고 데이터 시각화를 수행하는 간단한 데이터 분석 예제입니다. 실제 데이터셋을 사용하여 실전 데이터 분석을 수행할 때 이러한 접근 방법을 참고할 수 있습니다.

 

 


2. 아이리스 데이터

아이리스 데이터셋은 세 종류의 아이리스 식물에 대한 꽃잎과 꽃받침의 길이 및 너비를 포함하고 있습니다.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 아이리스 데이터 불러오기
url = 'https://raw.githubusercontent.com/uiuc-cse/data-fa14/gh-pages/data/iris.csv'
iris_df = pd.read_csv(url)

# 데이터 프레임의 처음 5개 행 출력
print(iris_df.head())

# 꽃 종(species)에 따른 데이터 분포 시각화
sns.pairplot(iris_df, hue='species', palette='Set2')
plt.show()

# 각 꽃 종별 특징별 평균값 계산
species_means = iris_df.groupby('species').mean()

# 시각화: 꽃 종별 특징별 평균값 막대 그래프
species_means.plot(kind='bar', rot=0)
plt.xlabel('꽃 종')
plt.ylabel('평균값')
plt.title('꽃 종별 특징별 평균값')
plt.show()


위의 예제에서는 아이리스 데이터셋을 불러와 꽃 종에 따른 데이터 분포를 시각화하고, 각 꽃 종별 특징별 평균값을 계산하여 시각화하는 과정을 보여줍니다. Pandas와 시각화 라이브러리 Seaborn을 사용하여 데이터 분석 및 시각화를 수행한 예제입니다.

 

 


3. 집값 예측 데이터

집값 예측 데이터셋은 집의 특성 (면적, 침실 수, 욕실 수, 위치 등)과 집값에 대한 정보를 포함하고 있습니다.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 집값 예측 데이터 불러오기
url = 'https://raw.githubusercontent.com/datablist/sample-data/master/housing_price.csv'
housing_df = pd.read_csv(url)

# 데이터 프레임의 처음 5개 행 출력
print(housing_df.head())

# 집값과 주요 특성 간의 상관관계 분석
corr_matrix = housing_df.corr()
print(corr_matrix['집값'].sort_values(ascending=False))

# 주요 특성과 집값 사이의 산점도 그래프
plt.scatter(housing_df['면적'], housing_df['집값'], alpha=0.5)
plt.xlabel('면적')
plt.ylabel('집값')
plt.title('면적 vs. 집값')
plt.show()

# 학습 데이터와 테스트 데이터로 분할
X = housing_df[['면적', '침실수', '욕실수']]
y = housing_df['집값']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 선형 회귀 모델 학습
lin_reg = LinearRegression()
lin_reg.fit(X_train, y_train)

# 테스트 데이터로 예측
y_pred = lin_reg.predict(X_test)

# 평균 제곱 오차(MSE) 계산
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse:.2f}')


위의 예제에서는 집값 예측을 위한 데이터셋을 불러와 데이터 분석을 수행하고, 주요 특성과 집값 사이의 상관관계를 분석합니다. 그런 다음, 선형 회귀 모델을 사용하여 집값을 예측하고 예측 성능을 평가하는 과정을 보여줍니다. 이 예제는 데이터 분석과 머신러닝을 결합한 실제 문제 해결 예제입니다.


 

 


4. 전기 사용량 분석 데이터

전기 사용량 데이터셋은 월별 전기 사용량 및 요금에 대한 정보를 포함하고 있습니다.

import pandas as pd
import matplotlib.pyplot as plt

# 전기 사용량 데이터 불러오기 (가상의 데이터)
data = {
    '월': ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
    '전기 사용량 (kWh)': [150, 180, 160, 190, 200, 220, 240, 250, 260, 270, 280, 300],
    '요금 (원)': [15000, 18000, 16000, 19000, 20000, 22000, 24000, 25000, 26000, 27000, 28000, 30000]
}

df = pd.DataFrame(data)

# 월별 전기 사용량 시각화
plt.figure(figsize=(10, 4))
plt.plot(df['월'], df['전기 사용량 (kWh)'], marker='o', linestyle='-', color='blue')
plt.xlabel('월')
plt.ylabel('전기 사용량 (kWh)')
plt.title('월별 전기 사용량')
plt.grid(True)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

# 월별 요금 시각화
plt.figure(figsize=(10, 4))
plt.plot(df['월'], df['요금 (원)'], marker='o', linestyle='-', color='green')
plt.xlabel('월')
plt.ylabel('요금 (원)')
plt.title('월별 전기 요금')
plt.grid(True)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

# 연간 평균 사용량 및 요금 계산
annual_avg_usage = df['전기 사용량 (kWh)'].mean()
annual_avg_cost = df['요금 (원)'].mean()
print(f'연간 평균 전기 사용량: {annual_avg_usage:.2f} kWh')
print(f'연간 평균 전기 요금: {annual_avg_cost:.2f} 원')


위의 예제에서는 월별 전기 사용량과 요금 데이터를 사용하여 데이터 시각화를 수행하고 연간 평균 사용량과 요금을 계산합니다. 이런 분석을 통해 전기 사용 패턴을 이해하고 비용을 관리하는 데 도움이 됩니다. 이것은 간단한 데이터 분석 예제로 데이터를 다루고 시각화하여 인사이트를 얻는 방법을 보여줍니다.








5. 영화 평점 분석 데이터

영화 평점 데이터셋은 사용자가 영화에 대한 평점을 매긴 정보를 포함하고 있습니다.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 영화 평점 데이터 불러오기 (가상의 데이터)
data = {
    '영화 제목': ['영화1', '영화2', '영화3', '영화4', '영화5'],
    '평점': [4.5, 3.8, 4.0, 4.2, 3.9],
    '장르': ['액션', '코미디', '로맨스', '드라마', '스릴러']
}

df = pd.DataFrame(data)

# 영화 평점 분포 시각화
plt.figure(figsize=(8, 4))
sns.histplot(data=df, x='평점', bins=10, kde=True, color='skyblue')
plt.xlabel('평점')
plt.ylabel('빈도')
plt.title('영화 평점 분포')
plt.show()

# 장르별 평점 평균 시각화
plt.figure(figsize=(8, 4))
sns.barplot(data=df, x='장르', y='평점', palette='Set2')
plt.xlabel('장르')
plt.ylabel('평균 평점')
plt.title('장르별 평균 평점')
plt.xticks(rotation=45)
plt.show()

# 최고 평점 영화 추출
highest_rated_movie = df[df['평점'] == df['평점'].max()]
print(f'최고 평점 영화: {highest_rated_movie.iloc[0]["영화 제목"]} (평점 {highest_rated_movie.iloc[0]["평점"]})')


위의 예제에서는 영화 평점 데이터를 사용하여 평점 분포 및 장르별 평균 평점을 시각화하고 최고 평점을 가진 영화를 추출하는 과정을 보여줍니다. 이것은 영화 평점 데이터를 활용하여 데이터 분석과 시각화를 수행하는 간단한 예제로, 영화 관련 데이터를 분석하고 의미 있는 정보를 추출하는 방법을 보여줍니다.

 

 

 


최종 정리

오늘은 파이썬 Pandas 라이브러리를 활용하여 다양한 실제 데이터셋을 이용한 데이터 분석 예제를 다뤘습니다. Pandas는 데이터 처리와 분석에 필수적인 도구로, 다양한 데이터 분석 작업을 더욱 효율적으로 수행할 수 있게 해주는 강력한 라이브러리입니다. 이러한 예제들을 통해 데이터를 다루고 분석하는 데 필요한 기술과 노하우를 습득하고, 데이터 과학과 데이터 분석 분야에서 더욱 역량을 키울 수 있습니다.

감사합니다.

728x90
반응형