(EDA) 유가 분석 (2)

임경민·2023년 11월 8일
1

■ 관련 내용 : (EDA) 유가 분석

Step 4. Visualization


4-1. Plot Graph


  • 한글 설정을 위한 ModuleLoad
import matplotlib.pyplot as plt
import seaborn as sns
import platform
from matplotlib import font_manager, rc

get_ipython().run_line_magic('matplotlib', 'inline')
# %matplotlib inline

path = 'C://Windows/Fonts/malgun.ttf'

if platform.system() == 'Darwin':
    rc('font', family = 'Arial Unicode MS')
elif platform.system() == 'Windows':
    font_name = font_manager.FontProperties(fname = path).get_name()
    rc('font', family = font_name)
else:
    print('Unknown System.. Sry')

  • 셀프 주유소 가격 boxplot
# Boxplot (with Pandas)
stations.boxplot(column = '가격', by = '셀프', figsize = (10, 6))


  • 상표를 기준으로 셀프 유/무에 따른 가격 boxplot
# boxplot

plt.figure(figsize = (10, 6))
sns.boxplot(x = '상표', y = '가격', hue = '셀프', data = stations, palette = 'Set3')
plt.grid()
plt.show()


4-2. 지도 시각화


  • 지도 시각화를 위한 ModuleLoad
import json
import folium
import warnings
warnings.simplefilter(action = 'ignore', category = FutureWarning)

  • 가장 비싼 주유소 10개
# 가장 비싼 주유소 10개
stations.sort_values(by = '가격', ascending = False).head(10)


  • 가장 싼 주유소 10개
# 가장 싼 주유소 10개
stations.sort_values(by = '가격', ascending = True).head(10)


  • 구별 유가 평균 구하기
import numpy as np

gu_data = pd.pivot_table(data = stations, index = '구', values = '가격', aggfunc = np.mean)
gu_data.head()


  • 구별 유가 평균 가격을 지도에 시각화
geo_path = 'data/02. skorea_municipalities_geo_simple.json'
geo_str = json.load(open(geo_path, encoding = 'utf-8'))

my_map = folium.Map(
    location = [37.5502, 126.982],
    zoom_start = 11,
    tiles = "Stamen Toner"
    )

my_map.choropleth(
    geo_data = geo_str,
    data = gu_data,
    columns = [gu_data.index, '가격'],
    key_on = 'feature.id',
    fill_color = 'PuRd'
)

my_map

0개의 댓글