์ ๊ฒ์๊ธ์์ ์นด์นด์คํก ์๋ณธ ๋ํ ๋ด์ฉ์ ๋ด๋ ค๋ฐ์ ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ์์ฑํ๊ณ ํจ์๋ก ๊ตฌํํด๋ณด์๋ค.
โผ ๊ฒ์๋ฌผ ํ์ธํ๊ธฐ
[DA][Python] (2์ฐจ ์ค๊ณ ๋ฐ ์์ฑ) ์นด์นด์คํก ๋ํ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ์ฝ๋ ์์ ์ค๊ณ
ํ์ฌ ํด๋น ๋ด์ฉ์ ํผ๋๋ฐฑ์ ๋ฐ์ ์ฝ๋ ์์ฑ์ ์๋ฃํ์์ผ๋ฉฐ ์ต์ข ์์ฑ๋ ์ฝ๋์ ๋ํ ์ค๋ช ์ด๋ค.์์ ์ฌํญ1. ํจ์๋ช ์ ๋ช ํํ๊ฒ ๋ณ๊ฒฝ2. ์๋ณธ ๋ฐ์ดํฐ์ ์กด์ฌํ๋ ์๋ก ๋ค๋ฅธ ํ์์ ๋ผ์ธ ๋ ๊ฐ์ง์
sundery.tistory.com
์ด์ ๋ ๋ฐ์ดํฐํ๋ ์์ผ๋ก ์ ๋ฆฌ๋ ์นด์นด์คํก ๋ํ๋ฅผ ์ํ๋ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํ ํจ์๋ฅผ ๋ง๋ค์ด์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํด๋ณผ ๊ฒ์ด๋ค.
์ฐ์ ์ฌ์ด ํจ์๋ถํฐ ์์ํด๋ณผ ์์ ์ด๊ณ ์ด ๊ฒ์๊ธ์์๋ ๊ฐ๋จํ๊ฒ ์ฌ์ฉ์๋ณ ๋ํ ๋น๋๋ฅผ ๋ถ์ํ๋ ํจ์๋ฅผ ์์ฑํ๋ ๋ฒ์ ์ดํด๋ณผ ๊ฒ์ด๋ค.
๋ถ์ ๋ด์ฉ
์ฌ์ฉ์๋ณ ๋ํ ๋น๋ ๋ถ์
์นด์นด์คํก ๋จ์ฒด ์ฑํ ๋ฐฉ์ ์ฐธ์ฌํ๊ณ ์๋ ์ฌ๋๋ณ๋ก ๋ณด๋ธ ๋ฉ์์ง์ ์๋ฅผ ์ธ์ ๊ฐ์ฅ ๋ง์ ๋ํ๋ฅผ ๋ณด๋ธ ์ฌ๋์ ์ฐพ๋ ๊ฒ์ด๋ค.
์ด๋ฅผ ํตํด ํ์ ์ฑํ ๋ฐฉ์ ์ฐธ์ฌ์ค์ธ ์ฌ๋ ์ค, ๊ทธ ๋จ์ฒด๋ฐฉ์ ๊ฐ์ฅ ์ ์ ์ด ๋์ ์ฌ๋์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ ๋ ํ์ฉ๋ ์ ์๋ค.
์ฐ์ ์์ ๊ฒฐ๊ณผ๊ฐ์ Name๊ณผ Message์ ๊ฐ์์ด๋ค.
Columns์ ์ด๋ฆ์ ์ ํ์๋ฉด ['Name'] ['Message_Count'] ๊ฐ ๋๊ฒ ๋ค.
ํจ์๋ช ์ ๋ฉ์ธ์ง ๊ฐ์๋ฅผ ๋น๊ตํ๋ค๋ ์๋ฏธ์์ compare_messages_counts๋ก ์ก๋๋ค.
def compare_message_counts(data):
๊ฐ์๋ ์ด๋ฆ๋ณ๋ก ๋ผ์ธ์ ๊ฐ์ ์ธ๋ฉด ๊ทธ ์ฌ๋์ด ์ ๋ ฅํ ๋ฉ์ธ์ง์ ์๋ฅผ ๊ณ์ฐํ ์ ์๊ธฐ ๋๋ฌธ์ Name ์นผ๋ผ์ value_counts()๋ฅผ ์ฐ๋ฉด ๋๋ค.
messages_count = df['Name'].value_counts()
- value_counts() : 'Name' ์ด์์ ๊ฐ ์ด๋ฆ์ด ๋ฑ์ฅํ๋ ํ์๋ฅผ ์ธ๋ ๊ฒ
์์ ๋ด์ฉ๊น์ง๋ง ๊ณ์ฐํ๋ฉด ์๋์ ๊ฐ์ ๊ฐ์ด ๋์จ๋ค.
์ด์ ์ซ์์ ์นผ๋ผ ์ด๋ฆ์ ๋ณ๊ฒฝํ๊ณ ๋ฐํํด์ฃผ์ด์ผ ํ๋๋ฐ ๋ฐ์ดํฐ ํ๋ ์ ํํ๋ก ๋ฐํํ๋ฉด ๋ ๋ณด๊ธฐ ๊น๋ํ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ ํด์ค๋ค.
messages_count = df['Name'].value_counts().reset_index()
messages_count.columns = ['Name', 'Message_Count']
- ์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํด์ฃผ๋ฉด ์๋์ ๊ฐ์ด ๋ฐ์ดํฐํ๋ ์ํ ํ์ฌ ์ถ๋ ฅ๋๋ค.
์์ ํจ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ์ฑํ ๋ฐฉ์ ๋ํ ๋น๋๋ฅผ ์ฌ์ฉ์๋ณ๋ก ์์๋ณผ ์ ์์๊ณ , ์ถํ์ ๋ค์ํ ๋ฐ์ดํฐ ๋ถ์ ๊ฒฐ๊ณผ ๊ฐ์ ํ์ฉ๋ ์ ์๋ค.