top of page

소스 코드 제출

공개·회원 50명

20250525

import pandas as pd

import matplotlib.pyplot as plt


plt.rcParams['axes.unicode_minus'] = False

plt.rcParams['font.family'] = 'Malgun Gothic'


df_delivery = pd.read_csv('./배달_사용_통계.csv', encoding='utf-8')

df_delivery.columns = df_delivery.columns.str.strip()


df_covid = pd.read_csv('./코로나_확진자_수_통계.csv', encoding='utf-8')

df_covid.columns = df_covid.columns.str.strip()


df = pd.merge(df_delivery, df_covid, on='연도', how='inner')


print(df.keys())


df['연도'] = df['연도'].astype(str).astype(str).str.zfill(2)

df['배달앱'] = pd.to_numeric(df['배달앱'], errors='coerce')

df['배달대행'] = pd.to_numeric(df['배달대행'], errors='coerce')

df['확진자'] = pd.to_numeric(df['확진자'], errors='coerce')

df['사망자'] = pd.to_numeric(df['사망자'], errors='coerce')

df['백신'] = pd.to_numeric(df['백신'], errors='coerce')

df['사망률 감소'] = pd.to_numeric(df['사망률 감소'], errors='coerce')

df['온라인 쇼핑'] = pd.to_numeric(df['온라인 쇼핑'], errors='coerce')


df = df.dropna(subset=['연도', '배달앱', '배달대행'])


fig, axes = plt.subplots(3, 1, figsize=(8, 12))


axes[0].plot(df['연도'], df['확진자'], marker='o', linestyle='-', color='red', label='코로나 확진률(누적)')

axes[0].plot(df['연도'], df['사망자'], marker='o', linestyle='-', color='gray', label='코로나 사망률(누적)')

axes[0].plot(df['연도'], df['배달앱'], marker='o', linestyle='-', color='yellow', label='배달앱 이용률')

axes[0].plot(df['연도'], df['배달대행'], marker='o', linestyle='-', color='orange', label='배달대행 이용률')

axes[0].set_title('배달앱 및 배달대행과 코로나의 관계')

axes[0].set_ylabel('전국민 대비 비율(%)')

axes[0].grid()

axes[0].legend()



axes[1].plot(df['연도'], df['확진자'], marker='o', linestyle='-', color='red', label='코로나 확진률(누적)')

axes[1].plot(df['연도'], df['사망자'], marker='o', linestyle='-', color='gray', label='코로나 사망률(누적)')

axes[1].plot(df['연도'], df['백신'], marker='o', linestyle='-', color='cyan', label='코로나 백신 접종률(누적)')

axes[1].plot(df['연도'], df['사망률 감소'], marker='o', linestyle='-', color='orchid', label='예상 사망률 감소율')

axes[1].set_title('코로나 발생과 백신 효과 분석')

axes[1].set_ylabel('전국민 대비 비율(%)')

axes[1].grid()

axes[1].legend()



axes[2].plot(df['연도'], df['확진자'], marker='o', linestyle='-', color='red', label='코로나 확진률(누적)')

axes[2].plot(df['연도'], df['사망자'], marker='o', linestyle='-', color='gray', label='코로나 사망률(누적)')

axes[2].plot(df['연도'], df['온라인 쇼핑'], marker='o', linestyle='-', color='sandybrown', label='작년 대비 온라인 쇼핑 거래액 증가율')

axes[2].set_title('코로나와 온라인 쇼핑의 관계')

axes[2].set_ylabel('전국민 대비 비율(%)')

axes[2].grid()

axes[2].legend()


for ax in axes:

ax.set_xticks(range(len(df["연도"])))


ax.set_xticklabels(df["연도"], rotation=0)


plt.tight_layout()

plt.show()



bar_width = 0.15


index = range(len(df["연도"]))


fig, axes = plt.subplots(3, 1, figsize=(8, 12))


axes[0].bar(index, df["확진자"], bar_width, label="코로나 확진률(누적)", color="red")

axes[0].bar([i + bar_width for i in index], df["사망자"], bar_width, label="코로나 사망률(누적)", color="gray")

axes[0].bar([i - bar_width * 2 for i in index], df["배달앱"], bar_width, label="배달앱 이용률", color="yellow")

axes[0].bar([i - bar_width for i in index], df["배달대행"], bar_width, label="배달대행 이용률", color="orange")

axes[0].set_title('배달앱 및 배달대행과 코로나의 관계')

axes[0].set_ylabel('전국민 대비 비율(%)')

axes[0].grid()

axes[0].legend()



axes[1].bar(index, df["확진자"], bar_width, label="코로나 확진률(누적)", color="red")

axes[1].bar([i + bar_width for i in index], df["사망자"], bar_width, label="코로나 사망률(누적)", color="gray")

axes[1].bar([i - bar_width for i in index], df["백신"], bar_width, label="백신 접종률(누적)", color="cyan")

axes[1].bar([i - bar_width * 2 for i in index], df["사망률 감소"], bar_width, label="사망률 감소율", color="orchid")

axes[1].set_title('코로나 발생과 백신 효과 분석')

axes[1].set_ylabel('전국민 대비 비율(%)')

axes[1].grid()

axes[1].legend()



axes[2].bar(index, df["확진자"], bar_width, label="코로나 확진률(누적)", color="red")

axes[2].bar([i + bar_width for i in index], df["사망자"], bar_width, label="코로나 사망률(누적)", color="gray")

axes[2].bar([i - bar_width for i in index], df["온라인 쇼핑"], bar_width, label="작년 대비 온라인 쇼핑 거래액 증가율", color='salmon')

axes[2].set_title('코로나와 온라인 쇼핑의 관계')

axes[2].set_ylabel('전국민 대비 비율(%)')

axes[2].grid()

axes[2].legend()


for ax in axes:

ax.set_xticks(index)

ax.set_xticklabels(df["연도"], rotation=0)


plt.tight_layout()

plt.show()

3회 조회

그래프 잘 나오고 데이터도 분야별로 다양함. 근데 코로나의 영향을 아예 안받을 것 같은 게 받은 거랑 그런 독특한 게 있어야 함, 데이터가 조금 더 많아야 하는 쪽으로 하기.

주소 : 경기도 용인시 광교중앙로 302 블루 스퀘어 602호
연락처 : 031) 216 - 1546 ,     031) 215 - 1546
사업자등록번호 : 465-92-00916
​학원 등록 제 4603호
bottom of page