๊ด€๋ฆฌ ๋ฉ”๋‰ด

yeon's ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

[๋ฐ์ดํ„ฐ ๋ถ„์„] ์ธ๋ฑ์‹ฑ๊ณผ ํ•„ํ„ฐ๋กœ ์„œ๋ธŒ์…‹ ๋งŒ๋“ค๊ธฐ ๋ณธ๋ฌธ

Computer ๐Ÿ’ป/๋ฐ์ดํ„ฐ ๋ถ„์„

[๋ฐ์ดํ„ฐ ๋ถ„์„] ์ธ๋ฑ์‹ฑ๊ณผ ํ•„ํ„ฐ๋กœ ์„œ๋ธŒ์…‹ ๋งŒ๋“ค๊ธฐ

yeon42 2021. 8. 3. 19:42
728x90

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)

  - ์‹œ๊ตฐ๊ตฌ๋ช… ์ด ์ƒ๊ถŒ์—…์ข…์ค‘๋ถ„๋ฅ˜๋ช… ๋ณ„๋กœ ์–ด๋–ป๊ฒŒ ๊ทธ๋ ค์ง€๋Š”์ง€

 

 

 

 

 

Comments