멋쟁이 사자처럼 AI 스쿨 TIL-Mini Project 2

김영민·2022년 10월 16일
0
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import koreanize_matplotlib

# 그래프에 retina display 적용
%config InlineBackend.figure_format = 'retina'
pd.Series([1,-1]).plot(title="한글", figsize=(5,1))

# 데이터 불러오기
from glob import glob
file_name = glob("제주*.CSV")
file_name

df = pd.read_csv(file_name[0], encoding="cp949")
df.shape

# 처음 n개의 행을 반환합니다.
# 지정하지 않으면 5개의 행을 반환합니다.
df.head(2)

# DataFrame의 요약을 봅니다.
df.info()

# 지정된 DataFrame의 유일값의 빈도수를 계산합니다.
df.nunique()

# 결측치의 합을 출력합니다.
# 결측치의 합을 출력하면 결측치가 몇 개 있는지 확인할 수 있습니다.
df.isnull().sum()

# "데이터기준일자" 를 제거합니다.
df = df.drop(columns = "데이터기준일자")
df.shape

# "	기준년월" 변수를 pandas의 datetime 자료형으로 변환.
df['기준년월'] = pd.to_datetime(df["기준년월"])
df['기준연도'] = df['기준년월'].dt.year
df['월'] = df['기준년월'].dt.month
df.head(2)

# 관광객 유형에서 관광객 제거
df["관광객 유형"] = df["관광객 유형"].str.replace(" 관광객","").str.strip()
df.head(2)

# describe
df.describe()

# describe
df.describe(include="object")

# df의 상관관계를 구합니다.
corr = df.corr()
mask = np.triu(np.ones_like(corr))
# NA/null 값을 제외한 열의 쌍별 상관 관계에 대해 heatmap을 그립니다.
plt.figure(figsize=(10, 10))
sns.heatmap(corr, annot=True, fmt = '.2f', cmap ="coolwarm", vmin=-1, vmax=1, mask=mask)

# df.groupby(["인덱스로 사용할 컬럼명"])["계산할 컬럼 값"].연산()

df.groupby(["업종명","성별"])["건당이용금액"].sum().plot.bar(rot=20, figsize=(20,5))

# 월, 제주 중분류으로 건당이용금액 평균을 구합니다.
month_local = df.groupby(["월","제주 중분류"])["건당이용금액"].mean().unstack()
month_local.plot(figsize=(15,4))
plt.legend(bbox_to_anchor=(1,1))

# 연별 횟수를 시각화합니다.
plt.figure(figsize=(20, 4))
sns.countplot(data=df, x="기준연도")

# 월별 횟수를 시각화합니다.
plt.figure(figsize=(20, 4))
sns.countplot(data=df, x="월")

# 연령대별/ 성별 시각화합니다.
plt.figure(figsize=(15, 4))
sns.countplot(data=df.sort_values("연령대별"), x="연령대별", hue = "성별")

# 연령대별/ 성별 시각화합니다.
plt.figure(figsize=(15, 4))
sns.countplot(data=df.sort_values("연령대별"), x="연령대별", hue = "성별")

데이터 출처 : https://www.data.go.kr/data/15046091/fileData.do

profile
배운걸 다 흡수하는 제로민

0개의 댓글