๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Projects/๐Ÿช Convenience Store Location Analysis

[pandas ์‘์šฉ์‹ค์Šต] ๊ฐ•๋‚จ๊ตฌ ์ฃผ์ฐจ ํ˜„ํ™ฉ ์‹œ๊ฐํ™”

by ISLA! 2023. 8. 28.

๊ณต๊ณต๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์—ฐ์Šต์šฉ

 

๐Ÿ”Ž ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ import

import requests
import pandas as pd

import warnings
warnings.filterwarnings('ignore')

 

๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ

df = pd.read_csv("./accessibility_data/seoul_parkinglot.csv")
df.head()

 

์ฃผ์š” ์ปฌ๋Ÿผ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€๊ฒฝ & ์ฃผ์ฐจ์žฅ ํ™•๋ณด์œจ์„ ์†Œ์ˆ˜์  ์•„๋ž˜ 2๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€

df2 = df2.astype({'์ž๋™์ฐจ๋“ฑ๋ก๋Œ€์ˆ˜ (๋Œ€)':'int', '์ฃผ์ฐจ๋ฉด์ˆ˜ (๋ฉด์ˆ˜)':'int', '์ฃผ์ฐจ์žฅํ™•๋ณด์œจ (%)':'float'})

df2['์ฃผ์ฐจ์žฅํ™•๋ณด์œจ (%)'] = round(df2['์ฃผ์ฐจ์žฅํ™•๋ณด์œจ (%)'], 2)
df2.head()

 


 

๐Ÿ”Ž ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

์ž์น˜๊ตฌ๋ณ„ ์ฃผ์ฐจ ๋ฉด์ˆ˜ ์‹œ๊ฐํ™” : Plotly.graph_objects ์ด์šฉ

import plotly.graph_objects as go

fig = go.Figure()

fig.add_trace(go.Bar(x = df2['์ž์น˜๊ตฌ'], y = df2['์ฃผ์ฐจ๋ฉด์ˆ˜ (๋ฉด์ˆ˜)']))
fig.update_layout(title = '์ž์น˜๊ตฌ๋ณ„ ์ฃผ์ฐจ๋ฉด์ˆ˜')

fig.show()

 

์ž์น˜๊ตฌ๋ณ„ ์ฃผ์ฐจ ๋ฉด์ˆ˜ ์‹œ๊ฐํ™” : plotly.express ์ด์šฉ

import plotly.express as px

fig = px.bar(df2, x='์ž์น˜๊ตฌ', y=['์ž๋™์ฐจ๋“ฑ๋ก๋Œ€์ˆ˜ (๋Œ€)', '์ฃผ์ฐจ๋ฉด์ˆ˜ (๋ฉด์ˆ˜)'],
             title='์ž์น˜๊ตฌ๋ณ„ ์ž๋™์ฐจ ๋“ฑ๋ก ๋Œ€์ˆ˜, ์ฃผ์ฐจ ๋ฉด์ˆ˜ ๋ฐ ์ฃผ์ฐจ์žฅ ํ™•๋ณด์œจ')

fig.show()

 

 

์ž์น˜๊ตฌ๋ณ„ ์ฃผ์ฐจ์žฅ ํ™•๋ณด์œจ ์‹œ๊ฐํ™” : Plotly.graph_objects ์ด์šฉ

  • Scatter plot์œผ๋กœ ์ ์ด ์žˆ๋Š” ์„  ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
    • mode = 'lines+markers'
  • ๊ฐ•์กฐํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„ ์‚ฌ๊ฐํ˜•์œผ๋กœ ํ‘œ์‹œํ•˜๊ธฐ
    • highlight_start ์™€, highlight_end (์‹œ์ž‘์ ๊ณผ ๋์  ์œ„์น˜ ์ง€์ •)
    • fig.add_shape( ) ๋กœ ์‚ฌ๊ฐํ˜• ํ‘œ์‹œ
fig = go.Figure()
fig.add_trace(go.Scatter(x = df2['์ž์น˜๊ตฌ'], y=df2['์ฃผ์ฐจ์žฅํ™•๋ณด์œจ (%)'], mode = 'lines+markers', name ='์ฃผ์ฐจ์žฅํ™•๋ณด์œจ (%)'))
fig.update_xaxes(tickangle = 45)

highlight_start = 21.5
highlight_end = 22.5
fig.add_shape(type='rect',
             x0 = highlight_start, y0 = 0,
             x1 = highlight_end, y1 = 200,
             fillcolor = 'rgba(255, 0, 0, 0.2)',
             line=dict(color='pink', width=2))

fig.show()

728x90