2025. 1. 6. 13:56ㆍdata 공부/데이터전처리
데이터 전처리
범주별 갯수 구하기
pd.crosstab(df('a'), df('b')
a 는 행 b는 열
a에 따른 b가 몇개인지
범주별 비율 구하기
pd.crosstab(df['a],df[b],normalize ='all']
전체를 100이라고 봤을때 각 항목의 %
pd.crosstab(df['a],df[b],normalize ='index']
행을 100으로 놓고 봤을 때 각 항목의 %
pd.crosstab(df['a],df[b],normalize ='columns']
열을 100으로 놓고 봤을 때 각 항목의 %
margins = True 추가 시, 행과 열의 합을 구할 수 있음
pd.crosstab(df['a],df[b],normalize ='all', margins=True]
다중 인덱스, 다중 컬럼
pd.crosstab(df[a],df[b], columns=df[c] normalize ='all', margins=True]
a,b는 행 c는 열
pd.crosstab(df[a],df[b],normalize ='comumns', margins=True]
전체를 행으로 놓고 비율 구하기
컬럼 여러개 넣고싶으면
pd.crosstab(df[a],df[b], columns=[df[c], df[c]] normalize ='all', margins=True]
리스트로 넣어주면 됨
이걸 피벗테이블 형태로 만들면 값의 연산을 할 수 있음
기본 형태
pd.pivot_table(df, index='index name a', columns = 'column name b', values = 'value name c', aggfunc='mean')
이것도 margins 를 통해 각 열,행의 합을 구할 수 있음
pd.pivot_table(df, index='index name a', columns = 'column name b', values = 'value name c', aggfunc='mean', margins='True')
여러개의 연산을 하고싶으면추가로 넣으면 됨
pd.pivot_table(df, index='index name a', columns = 'column name b', values = 'value name c', aggfunc='max','min','mean', margins='True')
다중인덱스 넣고싶으면 보고싶은 순서대로 넣기
'data 공부 > 데이터전처리' 카테고리의 다른 글
시계열 데이터 분석 (1) | 2024.12.27 |
---|---|
Random Forest and Kmeans (0) | 2024.12.26 |
지수 평활법(Exponential smoothing) (0) | 2024.12.24 |
Decision tree Classifier (0) | 2024.12.24 |
엑셀 대시보드 만들기 (0) | 2024.12.23 |