๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT/Python

[Python] 3. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ํžˆ์Šคํ† ๊ทธ๋žจ, histplot)

by ITyranno 2023. 12. 7.
728x90
๋ฐ˜์‘ํ˜•

 

 

 

 

 

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋ฅผ ํƒ๊ตฌํ•ฉ์‹œ๋‹ค.

 

 

 

 

 

 

1,2ํŽธ์€ ์ด์ „ ๊ฒŒ์‹œ๊ธ€ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

2023.12.05 - [IT/Python] - [Python] 1. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ (๊ตํ†ต๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ๊ฐ€๊ณต, ์‹œ๊ฐํ™”)

 

[Python] 1. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ (๊ตํ†ต๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ๊ฐ€๊ณต, ์‹œ๊ฐํ™”)

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋ฅผ ํƒ๊ตฌํ•ฉ์‹œ๋‹ค. 2ํŽธ์€ ์•„๋ž˜ ๊ฒŒ์‹œ๊ธ€ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค. 2023.12.06 - [IT/Python] - [Python] 2. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (ํžˆํŠธ๋งต heatmap) [Python] 2. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ

ityranno.tistory.com

 

 

 

2023.12.06 - [IT/Python] - [Python] 2. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (ํžˆํŠธ๋งต heatmap)

 

[Python] 2. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (ํžˆํŠธ๋งต heatmap)

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋ฅผ ํƒ๊ตฌํ•ฉ์‹œ๋‹ค. 1ํŽธ์€ ์•„๋ž˜ ๊ฒŒ์‹œ๊ธ€ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค. 2023.12.05 - [IT/Python] - [Python] 1. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ (๊ตํ†ต๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ๊ฐ€๊ณต, ์‹œ๊ฐํ™”) [Python] 1. ํฌํ•ญ์‹œ BIS

ityranno.tistory.com

 

 

 

 

 

 

 

<  3.  ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ํžˆ์Šคํ† ๊ทธ๋žจ, histplot)  >

 

 

 

๋ถ„์„ ์ฃผ์ œ

 


 - ๋Œ€์ฃผ์ œ : ํฌํ•ญ์‹œ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„


 - ์†Œ์ฃผ์ œ

   (๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„)
   * ๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์ผ ๋ฐ ์‹œ๊ฐ„๋Œ€๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์‹œ๊ฐ„ ๋ฐ ์‹œ๊ฐ„(๋ถ„)๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต

   (๋ฒ„์Šค ๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„)
   * ๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์ผ ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์‹œ๊ฐ„ ๋ฐ ์‹œ๊ฐ„(๋ถ„)๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   
   * ์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ ๊ตฌ๊ฐ„๋ณ„ ๋ฒ„์Šค ๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„
    - ์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) ์ƒ์œ„ 30๊ฑด ๋ถ„์„ ๋น„๊ต

 


 

- URL : ๊ตญ๊ฐ€๊ตํ†ต ๋ฐ์ดํ„ฐ ์˜คํ”ˆ๋งˆ์ผ“

๊ตญ๊ฐ€๊ตํ†ต ๋ฐ์ดํ„ฐ ์˜คํ”ˆ๋งˆ์ผ“ (bigdata-transportation.kr)

 

๊ตญ๊ฐ€๊ตํ†ต ๋ฐ์ดํ„ฐ ์˜คํ”ˆ๋งˆ์ผ“

 

www.bigdata-transportation.kr

 

 

 

 

 

 

1. ์‹œ๊ฐ„๋Œ€ ๋ฐ ์Šน๊ฐ์—ฐ๋ น๋ณ„ ๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) ์‹œ๊ฐํ™”(๋ง‰๋Œ€๊ทธ๋ž˜ํ”„)

 

 

 

ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ : ๊ธฐ์ค€์‹œ๊ฐ„, ์Šน๊ฐ์—ฐ๋ น, ๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„)

 

### ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ : ๊ธฐ์ค€์‹œ๊ฐ„, ์Šน๊ฐ์—ฐ๋ น, ๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„)
df_temp = pd.DataFrame()
df_temp["๊ธฐ์ค€์‹œ๊ฐ„"] = df_bus_card_tot["๊ธฐ์ค€์‹œ๊ฐ„"]
df_temp["์Šน๊ฐ๊ตฌ๋ถ„"] = df_bus_card_tot["์Šน๊ฐ์—ฐ๋ น"]
df_temp["๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„"] = df_bus_card_tot["๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„)"]
df_temp

 

 

 

 

์Šน๊ฐ ๋นˆ๋„ ํ™•์ธํ•˜๊ธฐ

 

### ์Šน๊ฐ ๋นˆ๋„ ํ™•์ธํ•˜๊ธฐ
df_temp["์Šน๊ฐ๊ตฌ๋ถ„"].value_counts()

 

 

 

 

 

 

 

๊ทธ๋ฃนํ™” ํ•˜๊ธฐ

 

### ๊ทธ๋ฃนํ™” ํ•˜๊ธฐ
df_temp2 = df_temp.groupby(["๊ธฐ์ค€์‹œ๊ฐ„", "์Šน๊ฐ๊ตฌ๋ถ„"], as_index=False).sum()
df_temp2 = df_temp2.sort_values(by=["๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„"], ascending=False)
df_temp2

 

 

 

 

### groupby ์ดํ›„์˜ head()์˜ ์—ญํ• 
# - ๊ทธ๋ฃน๋‹จ์œ„๋กœ ์กฐํšŒ๋จ
# - head(1) : ๊ฐ ๊ทธ๋ฃน์˜ ์ฒซ๋ฒˆ์งธ ๊ฐ’์„ ์กฐํšŒ์‹œ์ผœ ์ค๋‹ˆ๋‹ค.
df_temp2.head(1)

 

 

 

 

 

 

 

๋ฐ์ดํ„ฐ ํ–‰๊ณผ ์—ด์„ ๊ตํ™˜ํ•˜๊ธฐ

 

 

transepose ํ•จ์ˆ˜

 

### ๋ฐ์ดํ„ฐ ํ–‰๊ณผ ์—ด์„ ๊ตํ™˜ํ•˜๊ธฐ
df_temp2.transpose()

 

 

 

 

 

 

 

๊ทธ๋ž˜ํ”„ ์‹œ๊ฐํ™”ํ•˜๊ธฐ (๋ง‰๋Œ€๊ทธ๋ž˜ํ”„)

 

fig = plt.figure(figsize=(25, 10))

plt.title("์‹œ๊ฐ„ ๋ฐ ์Šน๊ฐ๊ตฌ๋ถ„๋ณ„ ๋ฒ„์Šค๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„๋‹จ์œ„) ๋ถ„์„")

### hue : x์ถ• ๋ฐ y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ตํ•  ๋Œ€์ƒ ์ปฌ๋Ÿผ ์ง€์ •(๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ†ต ์‚ฌ์šฉ)
sns.barplot(x="๊ธฐ์ค€์‹œ๊ฐ„", y="๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„", hue="์Šน๊ฐ๊ตฌ๋ถ„", data=df_temp2)

plt.show()

 

 

 

 

 

 

 

 

๊ทธ๋ž˜ํ”„ ์‹œ๊ฐํ™”ํ•˜๊ธฐ (histplot : ๋‘ ๊ฐœ์˜ ๊ทธ๋ž˜ํ”„ ์กฐํ•ฉ)

 

 

 

histplot ์‹œ๊ฐํ™” : ๋‘ ๊ฐœ ๊ทธ๋ž˜ํ”„ ์กฐํ•ฉ (๋ฐ€๋„๊ทธ๋ž˜ํ”„๋ผ๊ณ  ์นญํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.)

 

### histplot ์‹œ๊ฐํ™” : ๋‘ ๊ฐœ ๊ทธ๋ž˜ํ”„ ์กฐํ•ฉ (๋ฐ€๋„๊ทธ๋ž˜ํ”„๋ผ๊ณ  ์นญํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.)
plt.figure(figsize = (12, 4))
plt.title("์‹œ๊ฐ„ ๋ฐ ์Šน๊ฐ๊ตฌ๋ถ„๋ณ„ ๋ฒ„์Šค๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„๋‹จ์œ„) ๋ถ„์„")

sns.histplot(data = df_temp2,
             x = "๊ธฐ์ค€์‹œ๊ฐ„",
             ### ์‚ฌ์šฉํ•  ๋ง‰๋Œ€์˜ ์ตœ๋Œ€ ๊ฐฏ์ˆ˜
             bins = 30,
             ### ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์— ๋ฐ€๋„ ์„ ๊ทธ๋ฆฌ๊ธฐ
             kde = True,
             ### ๋ฒ”์ฃผ ๋ฐ์ดํ„ฐ
             hue = "์Šน๊ฐ๊ตฌ๋ถ„",
             ### ์—ฌ๋Ÿฌ ๋ฒ”์ฃผ๋ฅผ ํ•˜๋‚˜์˜ ๋ง‰๋Œ€์— ํ‘œํ˜„ํ•˜๊ธฐ
             multiple = "stack",
             ### ๋น„์œจ๋กœ ํ‘œ์‹œ
             stat = "density",
             ### ๋ง‰๋Œ€ ๋„ˆ๋น„ : 0.6์€ ์›๋ณธ 100% ์‚ฌ์ด์ฆˆ์—์„œ 60% ์ถ•์†Œํ•œ ๋„ˆ๋น„ ์‚ฌ์ด์ฆˆ
             shrink = 0.6)
plt.show()

 

 

 

 

 

 

3.  ์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ๋ณ„ ๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) ์ƒ์œ„ 30๊ฑด ์‹œ๊ฐํ™” ๋ถ„์„

 

 

 

๊ตฌ๊ฐ„(์Šน์ฐจ์ •๋ฅ˜์žฅ~ํ•˜์ฐจ์ •๋ฅ˜์žฅ)๋ณ„ ๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) sum() (๊ทธ๋ฃนํ™”) ํ•˜๊ธฐ

 

df_bus_card_tot

### ๊ตฌ๊ฐ„(์Šน์ฐจ์ •๋ฅ˜์žฅ~ํ•˜์ฐจ์ •๋ฅ˜์žฅ)๋ณ„ ๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) sum() (๊ทธ๋ฃนํ™”) ํ•˜๊ธฐ
### - ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
### - ์ƒ์œ„ 30๊ฐœ ์ถ”์ถœ

df_temp3 = pd.DataFrame()
df_temp3["์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ"] = df_bus_card_tot["์Šน์ฐจ์ •๋ฅ˜์žฅ"] + "-->" + \
                           df_bus_card_tot["ํ•˜์ฐจ์ •๋ฅ˜์žฅ"]
df_temp3["๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„"] = df_bus_card_tot["๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„)"]
df_temp3

 

 

 

 

 

 

 

 

 

์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ๋ณ„ ์ฒด๋ฅ˜์‹œ๊ฐ„ ๊ทธ๋ฃนํ™”ํ•˜๊ธฐ

 

 

์ƒ์œ„ 30๊ฑด ์ถ”์ถœํ•˜๊ธฐ

df_temp_30 = df_temp_gp.head(30)

 

### ์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ๋ณ„ ์ฒด๋ฅ˜์‹œ๊ฐ„ ๊ทธ๋ฃนํ™”ํ•˜๊ธฐ
df_temp_gp = df_temp3.groupby(["์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ"], as_index=False).sum()
df_temp_gp = df_temp_gp.sort_values(by=["๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„"], ascending=False)
### ์ƒ์œ„ 30๊ฑด ์ถ”์ถœํ•˜๊ธฐ
df_temp_30 = df_temp_gp.head(30)
df_temp_30

 

 

 

 

 

 

 

 

์„ ๊ทธ๋ž˜ํ”„ ์‹œ๊ฐํ™”ํ•˜๊ธฐ

 

 

 

 x์ถ•์˜ ๊ฐ’์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์กฐ์ •ํ•˜๊ธฐ
 - xticks() : x์ถ•์„ ์ปจํŠธ๋กคํ•˜๋Š” ํ•จ์ˆ˜

 

x์ถ• ๋ฐ y์ถ• ์ œ๋ชฉ ๋„ฃ๊ธฐ

 - plt.xlabel("์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ")
 - plt.ylabel("๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„)")

 

๊ฒฉ์ž์„  ํ‘œ์‹œํ•˜๊ธฐ

 - plt.grid(True)

 

plt.figure(figsize=(12, 4))
plt.title("์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ๋ณ„ ๋ฒ„์Šค๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„")

### ์„ ๊ทธ๋ž˜ํ”„
plt.plot(df_temp_30["์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ"], df_temp_30["๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„"])

### x์ถ• ๋ฐ y์ถ• ์ œ๋ชฉ ๋„ฃ๊ธฐ
plt.xlabel("์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ")
plt.ylabel("๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„)")

### x์ถ•์˜ ๊ฐ’์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์กฐ์ •ํ•˜๊ธฐ
# - xticks() : x์ถ•์„ ์ปจํŠธ๋กคํ•˜๋Š” ํ•จ์ˆ˜
plt.xticks(rotation = 90)

### ๊ฒฉ์ž์„  ํ‘œ์‹œํ•˜๊ธฐ
plt.grid(True)

plt.show()

 

 

 

 

 

 

 

ํ•ด์„

 

- ์ฃฝ๋„์‹œ์žฅ ์ •๋ฅ˜์žฅ ๋ฒ„์Šค๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„์ด ๊ธธ๋‹ค.

- ์ฃฝ๋„์‹œ์žฅํ–‰ ๊ธ‰ํ–‰๋ฒ„์Šค๊ฐ€ ํ•„์š”ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

loading