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
'⛺ 𝗕𝗼𝗼𝘁 𝗖𝗮𝗺𝗽 > 멋쟁이사자처럼 AI 스쿨 6기' 카테고리의 다른 글
[TIL] Day 25, 26, 27 - Mid, ML 개요 (0) | 2022.06.13 |
---|---|
[TIL] Day 24 - folium, streamlit (0) | 2022.06.08 |
[TIL] Day 18, 19, 20, 21, 22 - SQL, EDA, 통계 (0) | 2022.06.06 |
[TIL] Day 16, 17 - 시각화, 리팩토링 (0) | 2022.05.26 |
[TIL] Day 15 - Plotly (0) | 2022.05.24 |