히스토그램에서 범주형 수치형 비교방법
sns.countplot(data, x=, y=)
x, y 둘 중 하나만 작성하면 나머지축에 빈도를 구해서 표시
✔️ sns.barplot 에는 연산 기능이 있다. plotly 에서 barplot 처럼 연산을 할 수 있는 그래프는?
histogram
histogram에서 연산하는 옵션 = histfunc
int8 -> Byte(-128 to 127)
2^8 음수 양수 반반
unit8 -> 음수 없는 양수의 범위
int64 최소값은 666668, 최대값은 999987 이고 앞으로 음수는 사용하지 않는다고 가정할 때 unit32로 사용
pd.to_numeric(데이터, downcast='unsigned')
: downcast 메모리 용량을 줄일 수 있음
pd.to_numeric(데이터, downcast='integer')
= 데이터.astype('int8')
예를 들어 게시판의 게시글 내용일 때는 category 형태는 적합하지 않음
범주형 형태일때는 category 로 지정하면 메모리를 좀 더 효율적으로 사용할 수 있는데, 이 때 범주의 수가 너무 많다면 마치 게시글 내용처럼 많다면 적합하지 않을 수 있음 (메모리 용량이 줄어드는 효과가 없음)
데이터.dtypes -> dtype('데이터 타입')
df.dtypes.name -> '데이터 타입'
다운캐스트를 한 이유?
: 메모리 용량을 줄여서 효율적으로 사용하기 위해
csv와 parquet의 차이점?
csv는 ,로 데이터를 구분/ 데이터를 압축할 때 행 단위로 압축
parquet는 열 단위로 구분/ 데이터를 압축할 때 열 단위로 압축
-> 열 단위 압축은 동일한 데이터 타입이기에 저장공간을 효율적으로 사용
df.to_parquet(데이터, compression='gzip')
: 압축 방식 지정
csv파일보다 parquet파일이 용량이 더 큰 이유?
: 메타정보(데이터를 설명하는 데이터 및 정보)가 포함되어 있기 때문에
import os
os.stat("파일명").st_size
: 파일 사이즈 불러오기
/=1024 2진 측정값으로 구하기, 1000으로 나누면 10진 측정값