내일배움캠프

[내일배움캠프] TIL 29일차 26.02.10(화)

nom_de_plume 2026. 2. 10. 21:56

형태 변환

  • 데이터의 모양을 바꾸는 도구들
  • Wide(보고서용)과 Long(분석용)으로 나뉨
    • .stack() & .unstack()
      • .stack() : 컬럼(열)을 인덱스(행)로 쌓아 올리기 (위에서 옆으로 눕히는 느낌)
      • .unstack() : 인덱스를 컬럼으로 펼치기 (행에 있던 걸 열로 올림)
        • level 인자 : 어떤 인덱스를 올릴지 결정
        • fill_value=0 : 빈자리 처리
    • .melt()
      • Wide -> Long 변환
      • 여러 컬럼을 하나의 변수와 값 컬럼으로 녹여냄.
    • .pivot() vs .pivot_table()
      • pivot : 단순 형태 변환. 중복 데이터가 있으면 에러가 발생.
      • pivot_table : 중복 데이터가 있어도 평균, 합계 등으로 요약 가능

 

고급 데이터 연산

  • .transform()
    • .groupby()와 함께 자주 쓰임
    • apply나 aggregate는 데이터 크기가 줄어들지만(그룹당 1행), transform은 원본 데이터의 행 수를 유지하면서 계산 결과를 뿌려줌.
  • .apply()
    • 사용자 정의 함수를 적용할 때 사용
    • 로직이 복잡하면 def 함수
    • 로직이 간단하면 lambda 사용

 

문자열 처리 (.str)

  • Series 타입에서 문자열 전용 함수 바로 쓸 수 있게 해준다.
    • .str.capitalize() : 첫 글자만 대문자로 변환
    • .str.contains() : 특정 단어가 포함되어 있는지 확인 (True/False 반환). 필터링할 때 필수

 

인덱스 제어

  • .set_index() : 특정 컬럼을 인덱스로 보냄
    • append=True : 기존 인덱스를 유지하며 멀티인덱스 생성
    • drop=False : 인덱스로 보낸 컬럼을 원래 열 자리에 남김.
  • .reset_index() : 인덱스를 다시 일반 컬럼으로 돌리고 0,1,2, . . 순번으로 초기화

 

데이터 합치기 & 시계열

  • .concat() : 데이터를 이어 붙이기
    • axis = 0 (기본값) : 위아래로 길게 붙임
    • axis = 1 : 옆으로 넓게 붙임
    • ignore_index=True : 기존 인덱스가 의미 없을 때 새로 번호를 매김.
  • Timedelta : 날짜와 날짜 사이의 시간 차이를 나타내는 타입