ํ๋ก๊ทธ๋๋ฐ ์ธ๊ณ๋ฅผ ํ๊ตฌํฉ์๋ค.
1,2ํธ์ ์ด์ ๊ฒ์๊ธ ์ฐธ๊ณ ๋ฐ๋๋๋ค.
< 3. ํฌํญ์ BIS ๊ตํต์นด๋ ์ฌ์ฉ๋ด์ญ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ์๊ฐํ (๋ง๋๊ทธ๋ํ ํ์คํ ๊ทธ๋จ, histplot) >
๋ถ์ ์ฃผ์
- ๋์ฃผ์ : ํฌํญ์ ๋ฒ์ค ์ด์ฉ๋ ๋ถ์
- ์์ฃผ์
(๋ฒ์ค ์ด์ฉ๋ ๋ถ์)
* ๊ธฐ์ค์ ๋ฐ ๊ธฐ์ค์ผ์๋ณ ๋ฒ์ค ์ด์ฉ๋ ๋ถ์ ๋น๊ต
* ๊ธฐ์ค์ผ ๋ฐ ์๊ฐ๋๋ณ ๋ฒ์ค ์ด์ฉ๋ ๋ถ์ ๋น๊ต
* ๊ธฐ์ค์๊ฐ ๋ฐ ์๊ฐ(๋ถ)๋ณ ๋ฒ์ค ์ด์ฉ๋ ๋ถ์ ๋น๊ต
(๋ฒ์ค ๋ด ์ฒด๋ฅ์๊ฐ ๋ถ์)
* ๊ธฐ์ค์ ๋ฐ ๊ธฐ์ค์ผ์๋ณ ๋ฒ์ค ์ฒด๋ฅ์๊ฐ ๋ถ์ ๋น๊ต
* ๊ธฐ์ค์ผ ๋ฐ ๊ธฐ์ค์ผ์๋ณ ๋ฒ์ค ์ฒด๋ฅ์๊ฐ ๋ถ์ ๋น๊ต
* ๊ธฐ์ค์๊ฐ ๋ฐ ์๊ฐ(๋ถ)๋ณ ๋ฒ์ค ์ฒด๋ฅ์๊ฐ ๋ถ์ ๋น๊ต
* ์นํ์ฐจ์ ๋ฅ์ฅ ๊ตฌ๊ฐ๋ณ ๋ฒ์ค ๋ด ์ฒด๋ฅ์๊ฐ
- ์ฒด๋ฅ์๊ฐ(๋ถ) ์์ 30๊ฑด ๋ถ์ ๋น๊ต
- URL : ๊ตญ๊ฐ๊ตํต ๋ฐ์ดํฐ ์คํ๋ง์ผ
๊ตญ๊ฐ๊ตํต ๋ฐ์ดํฐ ์คํ๋ง์ผ (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()
ํด์
- ์ฃฝ๋์์ฅ ์ ๋ฅ์ฅ ๋ฒ์ค๋ด ์ฒด๋ฅ์๊ฐ์ด ๊ธธ๋ค.
- ์ฃฝ๋์์ฅํ ๊ธํ๋ฒ์ค๊ฐ ํ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.