[DA][Python] (μμ ) λν λΆμ κΈ°λ₯ - μκ°ννμ¬ μΆλ ₯ μ½λλ‘ μμ
μμ λ§λ λ κ°μ§ ν¨μλ μκ°ν μ½λκ° μλ λ°μ΄ν°νλ μν λ κ²°κ³Όκ°λ§ μΆλ ₯λλλ‘ μμ±λμ΄ μκΈ° λλ¬Έμ
μκ°ν κ²°κ³Όκ°μ΄ μΆλ ₯λλλ‘ μ½λλ₯Ό μμ νλ€.
βΌ κΈ°μ‘΄ ν¨μ 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, 'μ΄λͺ¨ν°μ½')