SKN/Remind

sk네트웍스 family AI 캠프 11기 5주차 회고록

claovy☘️ 2025. 3. 11. 21:51

5주차 회고기간 : 2025.03.03월~2025.03.07금

이번주차는 데이터분석의 중추인 pandas, matplotlib, 데이터 분석 도구 등을 배웠다.

 

pandas

  • Group by
# 부서별로 그룹핑
groupby_dept = df.groupby('department')
print(groupby_dept)
print(type(groupby_dept))
print(groupby_dept.groups)
# 두 개 이상의 컬럼으로 그룹핑
groupby_dept_job = df.groupby(['department','job'])
groupby_dept_job.groups

 

  • Merge : 특정 컬럼을 기준으로 dataframe 병합
# merge()
# - on : merge 기준 컬럼 
# - how : merge 방법 (inner (기본값), outer, left, right)
pd.merge(df1, df2, on='id', how='right') # 그냥 df1, df2를 merge하면 inner join과 같은 결과가 나온다.
  • Join 
df3.join(df4) # how 기본값 : left (이외에도 inner, right, outer join을 사용할 수 있다)
  • Concat
df5 = pd.DataFrame({
    'nickname' : ['구준표', '윤지후', '소이정', '프린스송'],
    'age' : [18, 18, 18, 18]
})

df6 = pd.DataFrame({
    'name' : ['금잔디'],
    'age' : [17]
})

pd.concat([df5, df6], axis=0).reset_index(drop=True) => 열 기준으로 병합
pd.concat([df5, df6], axis=1)  => 행 기준(디폴트)로 병합
  • Melt : 데이터를 늘려서 저장함
df = pd.DataFrame({
    'name': ['홍길동', '신사임당', '이순신'],
    'math': [80, 99, 100],
    'english': [34, 58, 48],
    'science': [99, 55, 77],
})

pd.melt(
    df,
    id_vars=['name'], # 유지시킬 컬럼
    value_vars=['math','english','science'], # 합쳐질 컬럼
    var_name='subject', # 컬럼명이 합쳐질 컬럼의 이름 
    value_name='score' # 컬럼값이 합쳐질 컬럼의 이름

<출력>

matplotlib

# 월별 매출 데이터
df = pd.DataFrame({
    'month' : ['1월','2월','3월','4월','5월','6월'],
    'sales' : [1300, 1600, 1700, 1650, 1900, 2300]
})

plt.bar(df['month'], df['sales'], zorder=10) # zorder : z축 깊이 설정 (값이 클수록 앞으로 나옴)

for i, val in enumerate(df['sales']):
    # x축 위치, y축 위치, 텍스트, 텍스트 정렬
    plt.text(i, val +100, str(val), ha='center')

plt.xlabel('월')
plt.ylabel('매출(단위 : 천만원)')
plt.grid(zorder=1)
plt.show()

💡 Keep

건강한 정신..()?

 

⚠️ Problem

복습 너무너무 귀찮아한다..머신러닝에서 기본적인 데이터셋으로 실습을 해서 그런지 너무 조는 것 같다

그래도 중간중간 모르는 하이퍼파라미터가 나오는데, 모르면서도(?) 안다고 생각한다는게 문제다..

 

+ 블로그에 너무 시간을 들이려다보니까 힘들다. 보여주기식이 아닌, 머릿속에 넣자

 

🔥 Try

효율적으로 복습하기