[TIL] Day 23 - Downcast

 

 

 23일차 

downcast

  • pd.to_numeric(df[], error, downcast) 를 통해서 타입을 변경하여 메모리를 줄일 수 있다.
  • df.info 데이터가 차지하는 메모리 사용량을 보면 type이 크게 잡혀있어서 불필요한 메모리를 사용하는 경우가 많다.
  • 따라서 min-max 에 맞게 적절한 타입을 정해주면 메모리 사용량을 줄일 수 있다.
  • startswith(str) 문자열 함수를 이용하여 str로 시작하는지 아닌지 확인할 수 있다.
  • pd.to_numeric()
    • int -> unsinged
    • float -> float
    • bool -> int8
    • object -> category
      • category 를 이용해서 폭이 넓게 줄일 수 있지만
      • 범주형이 아닌 아예 문자열로 된 데이터라면 category 로 변경하면 적절치않다.
  • df.select_dtypes(dtype).columns 로 해당 dtype을 가지고 있는 컬럼을 뽑을 수 있다.
  • df[].apply(pd.to_numeric, downcast)
  • Apache Parquet 를 이용하여 열 지향 데이터 파일 형식을 만들 수 있다.
  • 열로 저장하면 좋은 점?
    • 행이 아니라 열로 저장하면 같은 데이터타입만 저장하면 돼서 저장공간 절약이 가능하다.
    • 행으로 저장하면 어떤건 int고 어떤건 object 고..
  • df.to_parquet(filepath, compression) 로 parquet 파일 형식으로 만들기
    • gzip 으로 저장하는 이유는 성능이 제일 좋아서
    • snappy, gzip 등이 있음
  • os.path.isfile(filepath) 로 해당 파일이 파일인지 아닌지 확인
  • os.stat(filepath) 하면 여러가지 파일에 관한 메타 데이터 return 됨
    • os.stat().st_size 로 파일 사이즈 알기
  • 파일 크기
    • KB 2^10 10^3
    • MB 2^20 10^6
    • GB 2^30 10^9
    • TB 2^40 10^12
  • import cufflinks as cf
    • plotly 를 위한 생산적 도구
  • df[cols] > 0 하면 데이터프레임 전체가 return
    • 여기서 (df[cols] > 0).all 하면 아예 하나로 합쳐져서 bool 값 return
  • df[].iplot()

 

 

 

 회고 

메모리가 주는게 눈으로 보이니까 너무 재밌었어요

앞으로 데이터 전처리할 때 downcast 배운게 요긴하게 쓰일 것 같습니다.

후후 오늘 수업 집중 열심히한 것 같아서 뿌듯합니다 😙

이번주도 오늘만 같았으면 좋겠어요

 

 

 

 


 

728x90