[๋ฐ์ดํฐ ๋ถ์] ์ธ๋ฑ์ฑ๊ณผ ํํฐ๋ก ์๋ธ์ ๋ง๋ค๊ธฐ
1.1 ์ธ๋ฑ์ฑ๊ณผ ํํฐ๋ก ์๋ธ์ ๋ง๋ค๊ธฐ
- ํน์ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ค๊ธฐ
- ์๋ธ์ ์ ์๋ก์ด ๋ณ์์ ์ ์ฅํ ๋๋ copy() ์ฌ์ฉํ๊ธฐ
df_food = df[df["์๊ถ์
์ข
๋๋ถ๋ฅ๋ช
"] == "์์"].copy()
- Series ๋ฐ์ดํฐ์์ "์์"์ธ ๊ฒ๋ง ์ถ์ถ
1.1.1 ๊ฐ๋จ๊ตฌ์ ์๊ถ์ ์ข ๋๋ถ๋ฅ๊ฐ ์์๋ง ๋ณด๊ธฐ
- ์๊ตฐ๊ตฌ๋ช ์ด '๊ฐ๋จ๊ตฌ'์ธ ๊ฒ๋ง
df[df["์๊ตฐ๊ตฌ๋ช
"]] == "๊ฐ๋จ๊ตฌ"].head()
- ์๊ตฐ๊ตฌ๋ช ์ด '๊ฐ๋จ๊ตฌ'์ด๊ณ ์๊ถ์ ์ข ๋๋ถ๋ฅ๋ช ์ด '์์'์ธ ๊ฒ๋ง
df[(df["์๊ตฐ๊ตฌ๋ช
"] == "๊ฐ๋จ๊ตฌ") & (df["์๊ถ์
์ข
๋๋ถ๋ฅ๋ช
"] == "์์")]
- 2๊ฐ ์ด์์ ์กฐ๊ฑด์ ๋ง์กฑ์ํค๊ฒ ํ๋ ค๋ฉด ๊ดํธ๋ฅผ ์น๊ณ &๋ก ์ฎ๋๋ค.
- ์๊ถ์ ์ข ๋๋ถ๋ฅ๋ช ๋ณ๋ก ๋น๋์ ๊ตฌํ๊ธฐ
df[(df["์๊ตฐ๊ตฌ๋ช
"] == "๊ฐ๋จ๊ตฌ") & (df["์๊ถ์
์ข
๋๋ถ๋ฅ๋ช
"] == "์์")].value_counts()
- loc์ผ๋ก ๋น๋์ ๊ตฌํ๊ธฐ
df.loc[(df["์๊ตฐ๊ตฌ๋ช
"] == "๊ฐ๋จ๊ตฌ") & (df["์๊ถ์
์ข
๋๋ถ๋ฅ๋ช
"] == "์์"), "์๊ถ์
์ข
์ค๋ถ๋ฅ๋ช
"].value_counts()
- loc[ํ, ์ด]
- ์ด ๋ฐฉ๋ฒ์ด ํจ์ฌ ๋น ๋ฅด๋ฏ๋ก ๊ถ์ฅ๋จ
1.2 ๊ตฌ๋ณ ์์์ ์ ์ข ๋น๊ตํ๊ธฐ
- ์๋๋ช ์ด '์์ธํน๋ณ์' ์ด๊ณ , ์๊ถ์ ์ข ๋๋ถ๋ฅ๋ช ์ด '์์' ์ธ ๊ฒ๋ง
df_seoul_food = df[(df["์๋๋ช
"] == "์์ธ") & (df["์๊ถ์
์ข
๋๋ถ๋ฅ๋ช
"] == "์์")].copy()
- ์๊ตฐ๊ตฌ๋ช , ์๊ถ์ ์ข ์ค๋ถ๋ฅ๋ช ์ผ๋ก ๊ทธ๋ฃนํํด ์์ ์ ์ธ์ด๋ณด๊ธฐ
food_gu = df_seoul_food.groupby(["์๊ตฐ๊ตฌ๋ช
", "์๊ถ์
์ข
์ค๋ถ๋ฅ๋ช
"])["์ํธ๋ช
"].count()
- ์ด๋ค ์ด์ด๋ ์๋ ๋๊ฐ์ผ๋ ์์๋ก '์ํธ๋ช ' col์ ์ฌ์ฉํด countํ๊ธฐ
- multi-index
* food_gu์ ๋ด๊ธด ๋ฐ์ดํฐ ์๊ฐํ ํ๊ธฐ
(1) pandas๋ก ๊ทธ๋ฆฌ๊ธฐ
- ์๊ถ์ ์ข ์ค๋ถ๋ฅ๋ช ๊ณผ ์์ ์ ๋ก barplot ๊ทธ๋ฆฌ๊ธฐ
food_gu.unstack().plot.bar()
- ์์์ food_gu๋ multi-index๋ก ๋์ด์๊ธฐ ๋๋ฌธ์ unstack()์ ํตํด pivot ํํ๋ก ๋ฐ๊ฟ์ค์ผ ํจ
- ๋ง์ง๋ง์ index๊ฐ col์ ์ค๊ฒ ๋๋ค.
- pandas๋ก ์๊ฐํ๋ฅผ ํ ๋๋ pivot ํํ๋ก ๋์ด์๋ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด์ผ์ง ์๊ฐํ๊ฐ ๊ฐ๋ฅํ๋ค.
- ํน๋ณํ '๊ฐ๋จ๊ตฌ' ๋ง ๊ทธ๋ฆฌ๋ ค๋ฉด?
food_gu.unstack().loc["๊ฐ๋จ๊ตฌ"].plot.bar()
(2) seaborn ์ผ๋ก ๊ทธ๋ฆฌ๊ธฐ
food = food_gu.reset_index()
- '์ํธ๋ช '์ด๋ผ๋ column์ '์ํธ์'๋ก ๋ณ๊ฒฝํ๊ธฐ : rename(columns={"์๋":"๋ณ๊ฒฝ"})
food = food.rename(columns={"์ํธ๋ช
":"์ํธ์"})
plt.figure(figsize=(15, 4))
sns.barplot(data=food, x="์๊ถ์
์ข
์ค๋ถ๋ฅ๋ช
", y="์ํธ์")
- catplot์ ์ฌ์ฉํด ์๋ธํ๋กฏ ๊ทธ๋ฆฌ๊ธฐ
sns.catplot(data=food, x="์๊ถ์
์ข
์ค๋ถ๋ฅ๋ช
", y="์ํธ์", kind="bar", col="์๊ตฐ๊ตฌ๋ช
", col_wrap=4)
- col="์๊ตฐ๊ตฌ๋ช " : ๊ตฌ ๋ณ๋ก ๋ค๋ฅด๊ฒ ๊ทธ๋ฆฌ๊ณ ์ถ๋ค.
sns.catplot(data=food, x="์๊ตฐ๊ตฌ๋ช
", y="์ํธ์", kind="bar", col="์๊ถ์
์ข
์ค๋ถ๋ฅ๋ช
", col_wrap=4)
- ์๊ตฐ๊ตฌ๋ช ์ด ์๊ถ์ ์ข ์ค๋ถ๋ฅ๋ช ๋ณ๋ก ์ด๋ป๊ฒ ๊ทธ๋ ค์ง๋์ง