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

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

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

 

 

 



 

 

 

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

 

 

 

 

 

 

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

 

 

 

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

 

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

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋ฅผ ํƒ๊ตฌํ•ฉ์‹œ๋‹ค. - ๋Œ€์ฃผ์ œ : ํฌํ•ญ์‹œ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ - ์†Œ์ฃผ์ œ (๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„) * ๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต * ๊ธฐ์ค€์ผ ๋ฐ ์‹œ๊ฐ„๋Œ€๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต *

ityranno.tistory.com

 

 

 

 

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

 

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

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

ityranno.tistory.com

 

 

 

 

 

 

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

 

 

 

๋ถ„์„ ์ฃผ์ œ

 


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


 - ์†Œ์ฃผ์ œ

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

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

 


 

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

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

 

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

 

www.bigdata-transportation.kr

 

 

 

 

 

 

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ •์˜ํ•˜๊ธฐ 

 

 

### ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ •์˜ํ•˜๊ธฐ
import pandas as pd

 

 

 

 

์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ์ฝ์–ด๋“ค์ด๊ธฐ 

 

### ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ์ฝ์–ด๋“ค์ด๊ธฐ
# ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋ณ€์ˆ˜๋ช… : df_bus_coard_tot
df_bus_card_tot = pd.read_csv("./01_data/all/df_bus_card_tot.csv")
print("๊ฐฏ์ˆ˜ : ", len(df_bus_card_tot))
df_bus_card_tot.head(1)

 

 

 

 

 

 

 

 

๋ฐ์ดํ„ฐ ์ •๋ณด ํ™•์ธ

 

### ๋ฐ์ดํ„ฐ ์ •๋ณดํ™•์ธ
# - ๊ฒฐ์ธก์น˜ ์žˆ๋Š”์ง€ ํ™•์ธ : ์Šน๊ฐ์—ฐ๋ น
df_bus_card_tot.info()

 

 

 

 

 

 

 

 

 

 

๊ธฐ์ดˆํ†ต๊ณ„ ํ™•์ธํ•˜๊ธฐ

 

### ๊ธฐ์ดˆํ†ต๊ณ„ ํ™•์ธํ•˜๊ธฐ
df_bus_card_tot.describe()

 

 

 

 

 

 

 

 

 

[  ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”  ]

 

 

 

์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

 

๊ทธ๋ž˜ํ”„ ๋‚ด์— ํ•œ๊ธ€์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ ํฐํŠธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

 

### ์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns

### ๊ทธ๋ž˜ํ”„ ๋‚ด์— ํ•œ๊ธ€์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ ํฐํŠธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•จ
# - ํ•œ๊ธ€ ๊นจ์ง ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด์„œ
### ํฐํŠธ ํ™˜๊ฒฝ์„ค์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
from matplotlib import font_manager, rc
plt.rc("font", family = "Malgun Gothic")
### Mac
# plt.rc("font", family = "AppleGothic")

### ๊ทธ๋ž˜ํ”„ ๋‚ด์— ๋งˆ์ด๋„ˆ์Šค(-) ํ‘œ์‹œ ๊ธฐํ˜ธ ์ ์šฉํ•˜๊ธฐ
plt.rcParams["axes.unicode_minus"] = False

 

 

df_bus_card_tot.head(1)

 

 

 

 

 

 

 

 

1.  ๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ์‹œ๊ฐํ™” ๋ถ„์„ 

 

 

### ์‚ฌ์šฉํ•  ์ปฌ๋Ÿผ : ๊ธฐ์ค€์›”, ๊ธฐ์ค€์ผ, ์Šน๊ฐ์—ฐ๋ น
# - ์‚ฌ์šฉํ•  ์ง‘๊ณ„ํ•จ์ˆ˜ : count
# - ์ด์šฉ๋Ÿ‰ ์ง‘๊ณ„๋ฅผ ์œ„ํ•œ ํ•จ์ˆ˜ : pivot_table() -> ํžˆํŠธ๋งต ์‹œ๊ฐํ™” ์‹œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
# - ์‚ฌ์šฉํ•  ๊ทธ๋ž˜ํ”„ : ํžˆํŠธ๋งต(hitmap)

### ๋ฐ์ดํ„ฐ count ์ง‘๊ณ„ํ•˜๊ธฐ
# - y์ถ• : index
# - x์ถ• : columns
# - ์ง‘๊ณ„ : count(์Šน๊ฐ์—ฐ๋ น)
df_pivot = df_bus_card_tot.pivot_table(index = "๊ธฐ์ค€์›”",
                                        columns = "๊ธฐ์ค€์ผ",
                                        values = "์Šน๊ฐ์—ฐ๋ น",
                                        aggfunc = "count")
df_pivot

 

 

 

 

 

 

 

 

๊ฒฐ์ธก์น˜(NaN) ์ฒ˜๋ฆฌํ•˜๊ธฐ

 

 

### ๋ชจ๋“  ๊ฒฐ์ธก์น˜(NaN)๋Š” 0์œผ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ
df_pivot = df_pivot.fillna(0)
df_pivot

 

 

 

 

 

 

 

 

ํžˆํŠธ๋งต(heatmap) ์‹œ๊ฐํ™”

 

 

 

ํžˆํŠธ๋งต ๊ทธ๋ฆฌ๊ธฐ : ํžˆํŠธ๋งต์€ seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

### ๊ทธ๋ž˜ํ”„ ์ „์ฒด ๋„ˆ๋น„, ๋†’์ด ์„ค์ •
plt.figure(figsize=(20, 10))

### ๊ทธ๋ž˜ํ”„ ์ œ๋ชฉ ๋„ฃ๊ธฐ
plt.title("๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„")

### ํžˆํŠธ๋งต ๊ทธ๋ฆฌ๊ธฐ : ํžˆํŠธ๋งต์€ seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.
# - annot : False๋Š” ์ง‘๊ณ„๊ฐ’ ์ˆจ๊ธฐ๊ธฐ, True๋Š” ์ง‘๊ณ„๊ฐ’ ๋ณด์ด๊ธฐ
# - fmt : ".0f"๋Š” ์†Œ์ˆซ์  1์ž๋ฆฌ๊นŒ์ง€ ๋ณด์ด๊ธฐ
# - cmap : ์ปฌ๋Ÿฌ ์ƒ‰์ƒ๊ทธ๋ฃน

sns.heatmap(df_pivot, annot=True, fmt=".0f", cmap="rocket_r")

### ๊ทธ๋ž˜ํ”„ ๋ณด์—ฌ์ค˜~
plt.show()

"""
(ํ•ด์„)
 - 1์›”~3์›”๊นŒ์ง€์˜ ์ด์šฉ๋Ÿ‰์„ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ 1์›”์— ๊ฐ€์žฅ ๋งŽ์€ ์ด์šฉ๋Ÿ‰์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ์œผ๋ฉฐ,
   2์›”์—์„œ 3์›”๋กœ ๊ฐ€๋ฉด์„œ ์ด์šฉ๋Ÿ‰์ด ์ ์ง„์ ์œผ๋กœ ์ค„์–ด๋“ค๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ๋จ
 - ์ค„์–ด๋“œ๋Š” ์ด์œ ๋Š” ํฌํ•ญ์‹œ์˜ ํŠน์„ฑ์ƒ ์™ธ๋ถ€์—์„œ ๊ด€๊ด‘๊ฐ์˜ ์œ ์ž…์— ๋”ฐ๋ผ
   ๋ฒ„์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋จ
 - ์ด์— ๋”ฐ๋ผ, ํฌํ•ญ์‹œ ๊ด€๊ด‘๊ฐ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ํ•ด๋‹น ๋…„์›”์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ
   ๋น„๊ต ๋ถ„์„ํ•ด๋ณผ ํ•„์š”์„ฑ์ด ์žˆ์Œ

"""

 

 

 

 

 

 

 

 

ํ•ด์„
 

 - 1์›”~3์›”๊นŒ์ง€์˜ ์ด์šฉ๋Ÿ‰์„ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ 1์›”์— ๊ฐ€์žฅ ๋งŽ์€ ์ด์šฉ๋Ÿ‰์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ์œผ๋ฉฐ,

   2์›”์—์„œ 3์›”๋กœ ๊ฐ€๋ฉด์„œ ์ด์šฉ๋Ÿ‰์ด ์ ์ง„์ ์œผ๋กœ ์ค„์–ด๋“ค๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ๋จ
 - ์ค„์–ด๋“œ๋Š” ์ด์œ ๋Š” ํฌํ•ญ์‹œ์˜ ํŠน์„ฑ์ƒ ์™ธ๋ถ€์—์„œ ๊ด€๊ด‘๊ฐ์˜ ์œ ์ž…์— ๋”ฐ๋ผ ๋ฒ„์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋จ
 - ์ด์— ๋”ฐ๋ผ, ํฌํ•ญ์‹œ ๊ด€๊ด‘๊ฐ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ํ•ด๋‹น ๋…„์›”์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ต ๋ถ„์„ํ•ด๋ณผ ํ•„์š”์„ฑ์ด ์žˆ์Œ

 

 

 

 

2. ๊ธฐ์ค€์ผ ๋ฐ ๊ธฐ์ค€์‹œ๊ฐ„๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ์‹œ๊ฐํ™” ๋ถ„์„ 

 

 

 

๋ฐ์ดํ„ฐ count ์ง‘๊ณ„ํ•˜๊ธฐ

 

### ๋ฐ์ดํ„ฐ count ์ง‘๊ณ„ํ•˜๊ธฐ
# - y์ถ• : index
# - x์ถ• : columns
# - ์ง‘๊ณ„ : count(์Šน๊ฐ์—ฐ๋ น)
df_pivot = df_bus_card_tot.pivot_table(index = "๊ธฐ์ค€์ผ",
                                        columns = "๊ธฐ์ค€์‹œ๊ฐ„",
                                        values = "์Šน๊ฐ์—ฐ๋ น",
                                        aggfunc = "count")
df_pivot

 

 

 

 

 

๋ชจ๋“  ๊ฒฐ์ธก์น˜(NaN)์€ 0์œผ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ

 

### ๋ชจ๋“  ๊ฒฐ์ธก์น˜(NaN)๋Š” 0์œผ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ
df_pivot = df_pivot.fillna(0)
df_pivot

 

 

 

 

 

 

ํžˆํŠธ๋งต(heatmap) ์‹œ๊ฐํ™”

 

### ๊ทธ๋ž˜ํ”„ ์ „์ฒด ๋„ˆ๋น„, ๋†’์ด ์„ค์ •
plt.figure(figsize=(20, 10))

### ๊ทธ๋ž˜ํ”„ ์ œ๋ชฉ ๋„ฃ๊ธฐ
plt.title("๊ธฐ์ค€์ผ ๋ฐ ๊ธฐ์ค€์‹œ๊ฐ„๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„")

### ํžˆํŠธ๋งต ๊ทธ๋ฆฌ๊ธฐ : ํžˆํŠธ๋งต์€ seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.
# - annot : False๋Š” ์ง‘๊ณ„๊ฐ’ ์ˆจ๊ธฐ๊ธฐ, True๋Š” ์ง‘๊ณ„๊ฐ’ ๋ณด์ด๊ธฐ
# - fmt : ".0f"๋Š” ์†Œ์ˆซ์  1์ž๋ฆฌ๊นŒ์ง€ ๋ณด์ด๊ธฐ
# - cmap : ์ปฌ๋Ÿฌ ์ƒ‰์ƒ๊ทธ๋ฃน

sns.heatmap(df_pivot, annot=True, fmt=".0f", cmap="rocket_r")

### ๊ทธ๋ž˜ํ”„ ๋ณด์—ฌ์ค˜~
plt.show()

"""
(ํ•ด์„)
 - ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰์— ๋Œ€ํ•œ ๋ถ„์„ ๊ฒฐ๊ณผ,
 - ์ผ๋ฐ˜์ ์œผ๋กœ ์ถœ/ํ‡ด๊ทผ ์‹œ๊ฐ„์— ๋งŽ์•„์•ผ ํ•  ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰์ด ํฌํ•ญ์‹œ์˜ ๊ฒฝ์šฐ
   ์˜คํ›„ ์‹œ๊ฐ„๋Œ€์— ์ด์šฉ๋Ÿ‰์ด ๋ฐ€์ง‘๋˜์–ด ์žˆ์Œ
 - ํŠนํžˆ ์˜คํ›„ 1์‹œ, 3์‹œ์— ๋†’์€ ์ด์šฉ๋Ÿ‰์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ์Œ
 - ์ด๋Š” ์ถœ/ํ‡ด๊ทผ ์‹œ๊ฐ„์— ์ž๊ฐ€ ์ฐจ๋Ÿ‰์„ ์ด์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋งŽ์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์˜ˆ์ƒ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,
   ์ธ๊ตฌ ๋ถ„ํฌ๊ฐ€ ๋…ธ๋ น์ธ๊ตฌ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์˜คํ›„์— ์ด์šฉ์ž๊ฐ€ ๋งŽ์„ ์ˆ˜ ์žˆ์Œ
 - ๋”ฐ๋ผ์„œ, ํฌํ•ญ์‹œ ์ธ๊ตฌํ˜„ํ™ฉ ๋ฐ์ดํ„ฐ, ๊ฒฝ์ œํ™œ๋™์ธ๊ตฌ ๋ถ„์„์„ ํ†ตํ•ด ๋น„๊ต ๋ถ„์„์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋จ
 - ๋˜ํ•œ, ํ•ด๋‹น ์ด์šฉ๋Ÿ‰์ด ๋†’์€ ์‹œ๊ฐ„๋Œ€์— ๋…ธ์„ ์„ ํ™•์ธํ•˜์—ฌ ํŠน์„ฑ ํ™•์ธ๋„ ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋จ

"""

 

 

 

 

 

ํ•ด์„
 

 - ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰์— ๋Œ€ํ•œ ๋ถ„์„ ๊ฒฐ๊ณผ,
 - ์ผ๋ฐ˜์ ์œผ๋กœ ์ถœ/ํ‡ด๊ทผ ์‹œ๊ฐ„์— ๋งŽ์•„์•ผ ํ•  ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰์ด ํฌํ•ญ์‹œ์˜ ๊ฒฝ์šฐ
   ์˜คํ›„ ์‹œ๊ฐ„๋Œ€์— ์ด์šฉ๋Ÿ‰์ด ๋ฐ€์ง‘๋˜์–ด ์žˆ์Œ
 - ํŠนํžˆ ์˜คํ›„ 1์‹œ, 3์‹œ์— ๋†’์€ ์ด์šฉ๋Ÿ‰์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ์Œ
 - ์ด๋Š” ์ถœ/ํ‡ด๊ทผ ์‹œ๊ฐ„์— ์ž๊ฐ€ ์ฐจ๋Ÿ‰์„ ์ด์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋งŽ์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์˜ˆ์ƒ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,
   ์ธ๊ตฌ ๋ถ„ํฌ๊ฐ€ ๋…ธ๋ น์ธ๊ตฌ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์˜คํ›„์— ์ด์šฉ์ž๊ฐ€ ๋งŽ์„ ์ˆ˜ ์žˆ์Œ
 - ๋”ฐ๋ผ์„œ, ํฌํ•ญ์‹œ ์ธ๊ตฌํ˜„ํ™ฉ ๋ฐ์ดํ„ฐ, ๊ฒฝ์ œํ™œ๋™์ธ๊ตฌ ๋ถ„์„์„ ํ†ตํ•ด ๋น„๊ต ๋ถ„์„์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋จ
 - ๋˜ํ•œ, ํ•ด๋‹น ์ด์šฉ๋Ÿ‰์ด ๋†’์€ ์‹œ๊ฐ„๋Œ€์— ๋…ธ์„ ์„ ํ™•์ธํ•˜์—ฌ ํŠน์„ฑ ํ™•์ธ๋„ ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋จ

 

 

 

 

 

3. ๊ธฐ์ค€์‹œ๊ฐ„ ๋ฐ ๋ถ„๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ์‹œ๊ฐํ™” ๋ถ„์„ 

 

 

๋ฐ์ดํ„ฐ count ์ง‘๊ณ„ํ•˜๊ธฐ

 

 

### ๋ฐ์ดํ„ฐ count ์ง‘๊ณ„ํ•˜๊ธฐ
# - y์ถ• : index
# - x์ถ• : columns
# - ์ง‘๊ณ„ : count(์Šน๊ฐ์—ฐ๋ น)
df_pivot = df_bus_card_tot.pivot_table(index = "๊ธฐ์ค€์‹œ๊ฐ„",
                                        columns = "๊ธฐ์ค€์‹œ๊ฐ„(๋ถ„)",
                                        values = "์Šน๊ฐ์—ฐ๋ น",
                                        aggfunc = "count")
df_pivot

 

 

 

 

 

 

 

๋ชจ๋“  ๊ฒฐ์ธก์น˜(NaN)์€ 0์œผ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ

 

 

### ๋ชจ๋“  ๊ฒฐ์ธก์น˜(NaN)๋Š” 0์œผ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ
df_pivot = df_pivot.fillna(0)
df_pivot

 

 

 

 

 

 

ํžˆํŠธ๋งต(heatmap) ์‹œ๊ฐํ™”

 

 

### ๊ทธ๋ž˜ํ”„ ์ „์ฒด ๋„ˆ๋น„, ๋†’์ด ์„ค์ •
plt.figure(figsize=(20, 10))

### ๊ทธ๋ž˜ํ”„ ์ œ๋ชฉ ๋„ฃ๊ธฐ
plt.title("๊ธฐ์ค€์‹œ๊ฐ„ ๋ฐ ๊ธฐ์ค€์‹œ๊ฐ„(๋ถ„)๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„")

### ํžˆํŠธ๋งต ๊ทธ๋ฆฌ๊ธฐ : ํžˆํŠธ๋งต์€ seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.
# - annot : False๋Š” ์ง‘๊ณ„๊ฐ’ ์ˆจ๊ธฐ๊ธฐ, True๋Š” ์ง‘๊ณ„๊ฐ’ ๋ณด์ด๊ธฐ
# - fmt : ".0f"๋Š” ์†Œ์ˆซ์  1์ž๋ฆฌ๊นŒ์ง€ ๋ณด์ด๊ธฐ
# - cmap : ์ปฌ๋Ÿฌ ์ƒ‰์ƒ๊ทธ๋ฃน

sns.heatmap(df_pivot, annot=True, fmt=".0f", cmap="rocket_r")

### ๊ทธ๋ž˜ํ”„ ๋ณด์—ฌ์ค˜~
plt.show()

"""
(ํ•ด์„)
 - ์ถœ๊ทผ ์‹œ๊ฐ„๋Œ€์˜ ๋ฒ„์Šค์ด์šฉ๋Ÿ‰์„ ๋ณผ ๋•Œ ์˜ค์ „ 7์‹œ 55๋ถ„~8์‹œ 10๋ถ„ ์‚ฌ์ด์— ์ด์šฉ๋Ÿ‰์ด ๋งŽ์€ ๊ฒƒ์œผ๋กœ ๋ณด์ž„
 - ํ‡ด๊ทผ ์‹œ๊ฐ„๋Œ€์˜ ๊ฒฝ์šฐ์—๋Š” ์˜คํ›„ 6์‹œ~6์‹œ 20๋ถ„๊นŒ์ง€ ์ด์šฉ๋Ÿ‰์ด ๋งŽ์€ ๊ฒƒ์œผ๋กœ ๋ณด์ž„
 - ํŠนํžˆ ์˜คํ›„ 3์‹œ 20๋ถ„๊นŒ์ง€ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰์ด ๋งค์šฐ ํฌ๊ฒŒ ๋‚˜ํƒ€๋‚˜๊ณ  ์žˆ์Œ
 - ์˜คํ›„ ์‹œ๊ฐ„๋Œ€ ์ด์šฉ์ž์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ํ™•์ธ์€ ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ž„

"""

 

 

 

 

 

 

 

 

ํ•ด์„

 

 - ์ถœ๊ทผ ์‹œ๊ฐ„๋Œ€์˜ ๋ฒ„์Šค์ด์šฉ๋Ÿ‰์„ ๋ณผ ๋•Œ ์˜ค์ „ 7์‹œ 55๋ถ„~8์‹œ 10๋ถ„ ์‚ฌ์ด์— ์ด์šฉ๋Ÿ‰์ด ๋งŽ์€ ๊ฒƒ์œผ๋กœ ๋ณด์ž„
 - ํ‡ด๊ทผ ์‹œ๊ฐ„๋Œ€์˜ ๊ฒฝ์šฐ์—๋Š” ์˜คํ›„ 6์‹œ~6์‹œ 20๋ถ„๊นŒ์ง€ ์ด์šฉ๋Ÿ‰์ด ๋งŽ์€ ๊ฒƒ์œผ๋กœ ๋ณด์ž„
 - ํŠนํžˆ ์˜คํ›„ 3์‹œ 20๋ถ„๊นŒ์ง€ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰์ด ๋งค์šฐ ํฌ๊ฒŒ ๋‚˜ํƒ€๋‚˜๊ณ  ์žˆ์Œ
 - ์˜คํ›„ ์‹œ๊ฐ„๋Œ€ ์ด์šฉ์ž์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ํ™•์ธ์€ ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ž„

 

 

 

 

 

4. ๊ธฐ์ค€์ผ ๋ฐ ์‹œ๊ฐ„๋ณ„ ๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) ์‹œ๊ฐํ™” ๋ถ„์„ 

 

 

ํ”ผ๋ด‡ ๋ฐ์ดํ„ฐ ์ƒ์„ฑํ•˜๊ธฐ

 

# df_bus_card_tot
### ํ”ผ๋ด‡ ๋ฐ์ดํ„ฐ ์ƒ์„ฑํ•˜๊ธฐ
df_pivot = df_bus_card_tot.pivot_table(index = "๊ธฐ์ค€์ผ",
                                        columns = "๊ธฐ์ค€์‹œ๊ฐ„",
                                        values = "๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„)",
                                        aggfunc = "mean")
df_pivot

 

 

 

 

 

 

๋ชจ๋“  ๊ฒฐ์ธก์น˜(NaN)์€ 0์œผ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ

 

### ๋ชจ๋“  ๊ฒฐ์ธก์น˜(NaN)๋Š” 0์œผ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ
df_pivot = df_pivot.fillna(0)
df_pivot

 

 

 

 

 

 

ํžˆํŠธ๋งต(heatmap) ์‹œ๊ฐํ™”

 

 

### ๊ทธ๋ž˜ํ”„ ์ „์ฒด ๋„ˆ๋น„, ๋†’์ด ์„ค์ •
plt.figure(figsize=(20, 10))

### ๊ทธ๋ž˜ํ”„ ์ œ๋ชฉ ๋„ฃ๊ธฐ
plt.title("๊ธฐ์ค€์ผ ๋ฐ ์‹œ๊ฐ„๋ณ„ ๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) ๋ถ„์„")

### ํžˆํŠธ๋งต ๊ทธ๋ฆฌ๊ธฐ : ํžˆํŠธ๋งต์€ seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.
# - annot : False๋Š” ์ง‘๊ณ„๊ฐ’ ์ˆจ๊ธฐ๊ธฐ, True๋Š” ์ง‘๊ณ„๊ฐ’ ๋ณด์ด๊ธฐ
# - fmt : ".0f"๋Š” ์†Œ์ˆซ์  1์ž๋ฆฌ๊นŒ์ง€ ๋ณด์ด๊ธฐ
# - cmap : ์ปฌ๋Ÿฌ ์ƒ‰์ƒ๊ทธ๋ฃน

sns.heatmap(df_pivot, annot=True, fmt=".0f", cmap="rocket_r")

### ๊ทธ๋ž˜ํ”„ ๋ณด์—ฌ์ค˜~
plt.show()

"""
(ํ•ด์„)

 - ๋งค์›” 1์ผ์— ์žฅ๊ฑฐ๋ฆฌ ์ด์šฉ์ž๊ฐ€ ๋‹ค์ˆ˜ ๋ถ„ํฌํ•˜๊ณ  ์žˆ์œผ๋ฉฐ,
 - ์˜ค์ „ 5์‹œ๋ถ€ํ„ฐ ์žฅ๊ฑฐ๋ฆฌ ์ด์šฉ์ž๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Œ
 - ์˜คํ›„ 5์‹œ์— ์žฅ๊ฑฐ๋ฆฌ ์ด์šฉ์ž๊ฐ€ ๋งค์šฐ ๋งŽ๊ฒŒ ๋‚˜ํƒ€๋‚จ
 - ์ด๋Š” ํฌํ•ญ์‹œ ์ฃผ๋ณ€ ์ƒ๊ถŒ(๊ฒฝ์ œํ™œ๋™์ธ๊ตฌ)์˜ ์ด/ํ‡ด๊ทผ ์‹œ๊ฐ„์˜ ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋จ
 - 7์‹œ ์ดํ›„๋กœ๋Š” ์žฅ๊ฑฐ๋ฆฌ ์ด์šฉ์ž๋Š” ๋ณดํŽธ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๊ณ  ์žˆ์œผ๋ฉฐ,
   ์œ„์—์„œ ๋ถ„์„ํ•œ ๊ธฐ์ค€์ผ ๋ฐ ์‹œ๊ฐ„๋ณ„ ์ด์šฉ๋Ÿ‰ ๋ถ„์„์—์„œ ํ™•์ธํ•œ ๋ฐ”์™€ ๊ฐ™์ด 7์‹œ ์ดํ›„์˜ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰๋„ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์•„,
   ์ €๋… ์‹œ๊ฐ„ ๋ฒ„์Šค ์ด์šฉ์ด ํ˜„์ €ํžˆ ๋‚ฎ์€ ๊ฒƒ์œผ๋กœ ์—ฌ๊ฒจ์ง
 - ์žฅ๊ฑฐ๋ฆฌ ์ด์šฉ์ž๊ฐ€ ๋งŽ์€ ์‹œ๊ฐ„๋Œ€์— ๊ธ‰ํ–‰๋ฒ„์Šค์˜ ๋„์ž…์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ํ™•์ธ์€ ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ์—ฌ๊ฒจ์ง

"""

 

 

 

 

 

ํ•ด์„

 

 - ๋งค์›” 1์ผ์— ์žฅ๊ฑฐ๋ฆฌ ์ด์šฉ์ž๊ฐ€ ๋‹ค์ˆ˜ ๋ถ„ํฌํ•˜๊ณ  ์žˆ์œผ๋ฉฐ,
 - ์˜ค์ „ 5์‹œ๋ถ€ํ„ฐ ์žฅ๊ฑฐ๋ฆฌ ์ด์šฉ์ž๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Œ
 - ์˜คํ›„ 5์‹œ์— ์žฅ๊ฑฐ๋ฆฌ ์ด์šฉ์ž๊ฐ€ ๋งค์šฐ ๋งŽ๊ฒŒ ๋‚˜ํƒ€๋‚จ
 - ์ด๋Š” ํฌํ•ญ์‹œ ์ฃผ๋ณ€ ์ƒ๊ถŒ(๊ฒฝ์ œํ™œ๋™์ธ๊ตฌ)์˜ ์ด/ํ‡ด๊ทผ ์‹œ๊ฐ„์˜ ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋จ
 - 7์‹œ ์ดํ›„๋กœ๋Š” ์žฅ๊ฑฐ๋ฆฌ ์ด์šฉ์ž๋Š” ๋ณดํŽธ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๊ณ  ์žˆ์œผ๋ฉฐ,
   ์œ„์—์„œ ๋ถ„์„ํ•œ ๊ธฐ์ค€์ผ ๋ฐ ์‹œ๊ฐ„๋ณ„ ์ด์šฉ๋Ÿ‰ ๋ถ„์„์—์„œ ํ™•์ธํ•œ ๋ฐ”์™€ ๊ฐ™์ด 7์‹œ ์ดํ›„์˜ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰๋„ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์œผ       ๋กœ ๋ณด์•„, ์ €๋… ์‹œ๊ฐ„ ๋ฒ„์Šค ์ด์šฉ์ด ํ˜„์ €ํžˆ ๋‚ฎ์€ ๊ฒƒ์œผ๋กœ ์—ฌ๊ฒจ์ง
 - ์žฅ๊ฑฐ๋ฆฌ ์ด์šฉ์ž๊ฐ€ ๋งŽ์€ ์‹œ๊ฐ„๋Œ€์— ๊ธ‰ํ–‰๋ฒ„์Šค์˜ ๋„์ž…์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ํ™•์ธ์€ ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ์—ฌ๊ฒจ์ง

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

'IT > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] 1. Daum ๋‹ค์Œ ์˜ํ™” ์‚ฌ์ดํŠธ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์›นํฌ๋กค๋ง  (1) 2023.12.08
[Python] 3. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ํžˆ์Šคํ† ๊ทธ๋žจ, histplot)  (2) 2023.12.07
[Python] 1. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ (๊ตํ†ต๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ๊ฐ€๊ณต, ์‹œ๊ฐํ™”)  (4) 2023.12.05
[Python] 3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๊ธฐ (ํ•œ๊ตญ์ „๋ ฅ๊ฑฐ๋ž˜์†Œ ์‹œ๊ฐ„๋ณ„ ์ „๋ ฅ์ˆ˜์š”๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, Python-mariaDB ์—ฐ๊ฒฐ, ๋ฐ์ดํ„ฐ ๋žญ๊ธ€๋ง)  (4) 2023.12.04
[Python] 2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๊ธฐ (ํ•œ๊ตญ์ „๋ ฅ๊ฑฐ๋ž˜์†Œ ์‹œ๊ฐ„๋ณ„ ์ „๋ ฅ์ˆ˜์š”๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, Python-mariaDB ์—ฐ๊ฒฐ, ๋ฐ์ดํ„ฐ ๋žญ๊ธ€๋ง)  (4) 2023.12.02

loading