μ κ²μκΈμμ μΉ΄μΉ΄μ€ν‘ μλ³Έ λν λ΄μ©μ λ΄λ €λ°μ μ μ²λ¦¬νλ κ³Όμ μ μμ±νκ³ ν¨μλ‘ κ΅¬νν΄λ³΄μλ€.
βΌ κ²μλ¬Ό νμΈνκΈ°
[DA][Python] (2μ°¨ μ€κ³ λ° μμ±) μΉ΄μΉ΄μ€ν‘ λν λ°μ΄ν° μ μ²λ¦¬ μ½λ μμ μ€κ³
νμ¬ ν΄λΉ λ΄μ©μ νΌλλ°±μ λ°μ μ½λ μμ±μ μλ£νμμΌλ©° μ΅μ’ μμ±λ μ½λμ λν μ€λͺ μ΄λ€.μμ μ¬ν1. ν¨μλͺ μ λͺ ννκ² λ³κ²½2. μλ³Έ λ°μ΄ν°μ μ‘΄μ¬νλ μλ‘ λ€λ₯Έ νμμ λΌμΈ λ κ°μ§μ
sundery.tistory.com
4κ°μ ν¨μ μ€ λ§μ§λ§ ν¨μμ΄λ©° μ΄ κΈ°λ₯μ μ¬μ©μλ³λ‘ νκ· λ΅λ³ μκ°μ λΆμνμ¬ μΆλ ₯κ°μ΄ ν° μ¬λμΌμλ‘ μλμ μΌλ‘ μ±ν λ°©μ μ κ² λ°©λ¬Ένλ μ¬λμ΄λΌκ³ νλ¨ν μ μλ€.
λΆμ λ΄μ©
μ¬μ©μλ³ νκ· λ΅λ³ μκ°
μ°μ μ²μμ μ΄ κ°μ μΆλ ₯νκΈ° μν΄μ κ³ μν λ°©λ²μ
κ° νμ Nameλ³λ‘ κ·Έλ£Ήννμ¬ κ° νμ Timeμ λΊ κ°μ νκ· μ ꡬνλ κ²μ΄λ€.
κ·Έλ¬κΈ° μν΄μ νμν μ²λ¦¬λ Time κ°μ μ°μ°νκΈ° μ½λλ‘ μ΄ λ¨μλ‘ λ³ννλ κ²μ΄ νμνλ€.
μ°μ ν¨μλ₯Ό λ¨Όμ μ μνλ€.
def calculate_response_time(df):
μμ λ§λ€μ΄ λ λ°μ΄ν°νλ μμμ 'Time' μΉΌλΌμ κ°μ Έμμ Name λ³λ‘ μ λ ¬νλ€.
df['Time'] = pd.to_datetime(df['Time'])
df = df.sort_values(by=['Name', 'Time'])
νμ¬ νκ³Ό μ΄μ νμ κ° μ°¨μ΄λ₯Ό κ³μ°ν΄μ£Όλ ν¨μμΈ diff( )λ₯Ό μ¬μ©νμ¬ μ²« λ²μ§Έ νμ κ°μ 0μΌλ‘ μμνλλ‘ μ€μ νλ€.
df['ResponseTime'] = df.groupby('Name')['Time'].diff().fillna(pd.Timedelta(seconds=0))
- λκ΄νΈλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°νλ μμ 'Time'μ μ ν
- μκ΄νΈλ₯Ό μ¬μ©νμ¬ 'Name' μ΄μ κΈ°μ€μΌλ‘ λ°μ΄ν°λ₯Ό κ·Έλ£Ήν
μ΄λ¦λ³λ‘ μ 리ν μκ°μ νκ· κ°μ κ³μ°νκ³ νλμ κ°μΌλ‘ μ μνλ€.
avg_response_time = df.groupby('Name')['ResponseTime'].mean().reset_index()
μλ΅ μκ°μ κ°μ μ΄ λ¨μλ‘ λ³ννκ³ μμμ λμ§Έ μ리κΉμ§λ§ μΆλ ₯νμ¬ μ λλ κ°μ΄ λμ€λλ‘ νλ€.
avg_response_time['ResponseTime'] = avg_response_time['ResponseTime'].dt.total_seconds().round(2)
- μμ timedelta νμμΌλ‘ μμ±νκΈ° λλ¬Έμ μ΄ λ¨μλ‘ λ³ννμ¬ κ°μ κ³μ°ν μ μλ€.
- round(2)λ₯Ό μ¬μ©νμ¬ μμμ λμ§Έ μ리κΉμ§λ§ λ°ν
κ°μ κ²°κ³Ό κ°μ΄ μμ μ¬λμΌμλ‘ μ±ν λ°©μ μμ£Ό λ€μ΄μ€λ μ¬λμ΄κΈ° λλ¬Έμ μ€λ¦μ°¨μμΌλ‘ μ λ ¬λλλ‘ μ€μ νλ€.
avg_response_time = avg_response_time.sort_values(by='ResponseTime', ascending = False)
- ResponsTime μΉΌλΌ κ°μ κΈ°μ€μΌλ‘ μ€λ¦μ°¨μ μ λ ¬
κ°λ‘ λ§λ κ·Έλνλ‘ λνλ΄κΈ° μν΄ barh μ°¨νΈλ₯Ό μ¬μ©νμ¬ μκ°ννλ€.
plt.figure(figsize=(10, 4))
plt.barh(avg_response_time['Name'], avg_response_time['ResponseTime'], color='skyblue')
λ§μ§λ§μΌλ‘ μΆλ ₯λ κ°μ κ° λΌλ²¨ μ΄λ¦κ³Ό νμ΄ν λͺ μ μ μνμ¬ μΆλ ₯νλ κ²μΌλ‘ λ§λ¬΄λ¦¬νλ€.
plt.title('μ¬μ©μλ³ νκ· λ΅λ³ μκ°')
plt.xlabel('λ΅μ₯ νκ· μκ° (μ΄)')
plt.ylabel('μ¬μ©μ')
plt.legend(title='λ΅μ₯ νκ· μκ° (μ΄)', fontsize=9)
plt.show()
return avg_response_time
κ²°κ³Όκ°
'π‘ Data Analysis > π Project - Analysis of KakaoTalk (end)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[QT] QT Designer λ‘ λμμΈνκΈ° (0) | 2024.07.31 |
---|---|
[QT] QT Designer μ¬μ©νκΈ° (0) | 2024.07.30 |
[DA][Python] (μμ ) λν λΆμ κΈ°λ₯ - μκ°ννμ¬ μΆλ ₯ μ½λλ‘ μμ (3) | 2024.07.23 |
[DA][Python] λν λΆμ κΈ°λ₯ - μ¬μ©μλ³ κ° μκ°λ νλ λΉλ λΆμ (3) (6) | 2024.07.23 |
[DA][Python] μΉ΄μΉ΄μ€ν‘ λν λ΄μ© λΆμ κΈ°λ₯ ν¨μ ꡬν (3-1) (0) | 2024.07.16 |