์์ ๋ง๋ ๋ ๊ฐ์ง ํจ์๋ ์๊ฐํ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐํ๋ ์ํ ๋ ๊ฒฐ๊ณผ๊ฐ๋ง ์ถ๋ ฅ๋๋๋ก ์์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์
์๊ฐํ ๊ฒฐ๊ณผ๊ฐ์ด ์ถ๋ ฅ๋๋๋ก ์ฝ๋๋ฅผ ์์ ํ๋ค.
โผ ๊ธฐ์กด ํจ์ 2๊ฐ์ง
- ์ฌ์ฉ์๋ณ ๋ํ ๋น๋ ๋ถ์(1)
[DA][Python] ๋ํ ๋ถ์ ๊ธฐ๋ฅ - ์ฌ์ฉ์๋ณ ๋ํ ๋น๋ ๋ถ์ (1)
์ ๊ฒ์๊ธ์์ ์นด์นด์คํก ์๋ณธ ๋ํ ๋ด์ฉ์ ๋ด๋ ค๋ฐ์ ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ์์ฑํ๊ณ ํจ์๋ก ๊ตฌํํด๋ณด์๋ค.โผ ๊ฒ์๋ฌผ ํ์ธํ๊ธฐ [DA][Python] (2์ฐจ ์ค๊ณ ๋ฐ ์์ฑ) ์นด์นด์คํก ๋ํ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ์ฝ๋ ์
sundery.tistory.com
- ์ฌ์ฉ์๋ณ ์ด๋ชจํฐ์ฝ ์ฌ์ฉ ๋น๋ ๋ถ์ (2)
[DA][Python] ๋ํ ๋ถ์ ๊ธฐ๋ฅ - ์ฌ์ฉ์๋ณ ์ด๋ชจํฐ์ฝ ์ฌ์ฉ ๋น๋ ๋ถ์ (2)
์ ๊ฒ์๊ธ์์ ์นด์นด์คํก ์๋ณธ ๋ํ ๋ด์ฉ์ ๋ด๋ ค๋ฐ์ ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ์์ฑํ๊ณ ํจ์๋ก ๊ตฌํํด๋ณด์๋ค.โผ ๊ฒ์๋ฌผ ํ์ธํ๊ธฐ [DA][Python] (2์ฐจ ์ค๊ณ ๋ฐ ์์ฑ) ์นด์นด์คํก ๋ํ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ์ฝ๋ ์
sundery.tistory.com
์์
์ฌ์ฉ์๋ณ ๋ํ ๋น๋ ๋ถ์(1)
โผ ๊ธฐ์กด ์ฝ๋
#์ฌ์ฉ์๋ณ ๋ํ ๋น๋ ๋ถ์
def count_messages_by_name(df):
#Name ์นผ๋ผ ์ธ๋ฑ์ค ์ ์ธ๊ธฐ
""" ๋ฐ์ดํฐํ๋ ์์์ 'Name' ์นผ๋ผ์ ๊ฐ์ ์ธ์ด ๊ฐ ์ด๋ฆ๋ณ ๋ฉ์์ง ์๋ฅผ ๋ฐํํ๋ค."""
messages_count = df['Name'].value_counts().sort_values(ascending = False).reset_index(name = 'Message_Count')
messages_count.columns = ['Name', 'Message_Count']
return messages_count
๊ธฐ์กด ์ฝ๋๋ ์์ฃผ ๊ฐ๋จํ๋ค.
์ฌ๊ธฐ์ ์๊ฐํ๋์ด ์ถ๋ ฅ๋ ์ ์๋ ์ฝ๋๋ง ์ถ๊ฐํ๋ฉด ๋๋ค.
ํด๋น ์ฐจํธ๋ ๋ฐ ์ฐจํธ๋ก ์ถ๋ ฅํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ bar ์ฐจํธ๋ก ์ถ๋ ฅ๋๋๋ก ์ ๋ ฅํ๋ค.
plt.figure((figsize=(5, 4))
plt.bar(messages_count['Name'], messages_count['Message_Count'], color='green')
- ๋ฐ์ ๊ฐ๋ก ์ธ๋ก ๊ธธ์ด๋ฅผ ์ง์ ํด์ฃผ๊ณ (figsize) ๋ฐ์ ๊ฐ ๊ฐ์ ์นผ๋ผ๋ช ์ผ๋ก ์ง์ ํด์ค๋ค.
- ์์ green
์ถ๋ ฅ๋๋ ์๊ฐํ ์ฐจํธ์ ๊ฐ ๋ผ๋ฒจ์ ์ง์ ํด์ค๋ค.
plt.title('์ฌ์ฉ์๋ณ ๋ํ ๋น๋')
plt.xlabel('์ฌ์ฉ์')
plt.ylabel('๋ํ ๋ฉ์์ง ์')
plt.show()
return messages_count
โผ ์ต์ข ์์ ์ฝ๋
#์ฌ์ฉ์๋ณ ๋ํ ๋น๋ ๋ถ์
def count_messages_by_name(df):
#Name ์นผ๋ผ ์ธ๋ฑ์ค ์ ์ธ๊ธฐ
""" ๋ฐ์ดํฐํ๋ ์์์ 'Name' ์นผ๋ผ์ ๊ฐ์ ์ธ์ด ๊ฐ ์ด๋ฆ๋ณ ๋ฉ์์ง ์๋ฅผ ๋ฐํํ๋ค."""
messages_count = df['Name'].value_counts().sort_values(ascending = False).reset_index(name = 'Message_Count')
messages_count.columns = ['Name', 'Message_Count']
#๋ฐ์ดํฐ ์๊ฐํ
plt.figure(figsize=(5, 4))
plt.bar(messages_count['Name'], messages_count['Message_Count'], color='green')
#๋ผ๋ฒจ ์ค์
plt.title('์ฌ์ฉ์๋ณ ๋ํ ๋น๋')
plt.xlabel('์ฌ์ฉ์')
plt.ylabel('๋ํ ๋ฉ์์ง ์')
plt.show()
return messages_count
count_messages_by_name(df)
์ฌ์ฉ์๋ณ ์ด๋ชจํฐ์ฝ ์ฌ์ฉ ๋น๋ ๋ถ์ (2)
โผ ๊ธฐ์กด ์ฝ๋
#์ฌ์ฉ์๋ณ ์ด๋ชจํฐ์ฝ ์ฌ์ฉ ๋น๋ ๋ถ์
def compare_emoticon_counts(data, emoticon):
#Name ๋ณ๋ก ์ด๋ชจํฐ์ฝ ์ด๋ผ๋ ๋จ์ด๊ฐ Message ์นผ๋ผ ๋ด์ ๋ฌธ์์ด์ ์ผ๋ง๋ ํฌํจ๋์๋ ์ง ์ธ์ Emoticon_Count์ ์ฝ์
emoticon_count = df[df['Message'].str.contains(emoticon, na=False)].groupby('Name').size().reset_index(name='Emoticon_Count')
#๋ง์ด ์ฌ์ฉํ ์์ผ๋ก ์ ๋ ฌ
emoticon_count = emoticon_count.sort_values(by='Emoticon_Count', ascending=False)
return emoticon_count
์์ ์ฝ๋์์ ์ ๋ ฌ๊น์ง๋ ๋๊ฐ๊ณ ์๊ฐํ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด๋ค.
์์ ๋์ผํ๊ฒ ๋ฐ ์ฐจํธ๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ฉฐ ์ฌ์ด์ฆ๋ 5, 4๋ก ์ค์ ํ๋ค.
plt.figure(figsize=(5, 4))
plt.bar(emoticon_count['Name'], emoticon_count['Emoticon_Count'], color='lightcoral')
- ์์์ lightcoral
์ถ๋ ฅ๋๋ ์๊ฐํ ์ฐจํธ์ ๊ฐ ๋ผ๋ฒจ์ ์ง์ ํด์ค๋ค.
plt.title('์ฌ์ฉ์๋ณ ์ด๋ชจํฐ์ฝ ์ฌ์ฉ ๋น๋')
plt.xlabel('์ฌ์ฉ์', fontsize=9, labelpad=15)
plt.xticks(rotation=45)
plt.ylabel('์ด๋ชจํฐ์ฝ ์')
plt.show()
return emoticon_count
โผ ์ต์ข ์์ ์ฝ๋
#์ฌ์ฉ์๋ณ ์ด๋ชจํฐ์ฝ ์ฌ์ฉ ๋น๋ ๋ถ์
def count_emoticon_usage(df, emoticon):
"""๋ฐ์ดํฐํ๋ ์์์ ํน์ ์ด๋ชจํฐ์ฝ์ ์ฌ์ฉ ๋น๋๋ฅผ ์ด๋ฆ๋ณ๋ก ๊ณ์ฐํ์ฌ ๋ฐํ"""
#Name ๋ณ๋ก ์ด๋ชจํฐ์ฝ ์ด๋ผ๋ ๋จ์ด๊ฐ Message ์นผ๋ผ ๋ด์ ๋ฌธ์์ด์ ์ผ๋ง๋ ํฌํจ๋์๋ ์ง ์ธ์ Emoticon_Count์ ์ฝ์
emoticon_count = df[df['Message'].str.contains(emoticon, na=False)].groupby('Name').size().reset_index(name='Emoticon_Count')
emoticon_count = emoticon_count.sort_values(by='Emoticon_Count', ascending = False)
#๋ฐ์ดํฐ ์๊ฐํ
plt.figure(figsize = (5,4))
plt.bar(emoticon_count['Name'], emoticon_count['Emoticon_Count'], color='lightcoral')
#๋ผ๋ฒจ ์ค์
plt.title('์ฌ์ฉ์๋ณ ์ด๋ชจํฐ์ฝ ์ฌ์ฉ ๋น๋')
plt.xlabel('์ฌ์ฉ์', fontsize=9, labelpad=15)
plt.xticks(rotation=45)
plt.ylabel('์ด๋ชจํฐ์ฝ ์')
plt.show()
return emoticon_count
count_emoticon_usage(df, '์ด๋ชจํฐ์ฝ')