사용자 정의 함수로 플롯 만들기
이전 연습 문제에서 플롯을 만들기 위해 다음 코드를 작성하셨죠:
# tech와 fmcg 기업만 서브셋 만들기
subset_dat = dataset.loc[dataset["comp_type"].isin(["tech", "fmcg"])]
# tech와 fmcg 기업의 연도별 평균 매출총이익률 계산
subset_dat_avg = subset_dat.pivot_table(index=["Year", "comp_type"], values = "gross_margin").reset_index()
# company 열 추가
subset_dat_avg["company"] = np.where(subset_dat_avg["comp_type"]=="tech", "Avg tech", "Avg fmcg")
# DataFrame 연결
plot_df = pd.concat([subset_dat, subset_dat_avg], axis=0)
# 플롯 그리기
sns.relplot(data=plot_df.reset_index(drop=True), x="Year", y="gross_margin", hue="company", col="comp_type", kind="line")
plt.show()
plt.close()
이번 연습 문제에서는 tech와 FMCG DataFrame에 대해 동일한 작업을 반복하고 있음을 확인할 수 있습니다. 이는 DRY(Don't repeat yourself, 반복 금지)라는 코딩 원칙에 어긋납니다. 반복 코드는 작업량을 늘리고 실수 가능성도 높입니다. 이번에는 데이터를 처리하고 그림을 그리는 함수를 직접 정의해 보겠습니다.
이 연습은 강의의 일부입니다
