본문 바로가기
데이터분석/Pandas&Numpy

pandas 데이터 변환 / transform() - 누락값 평균값으로 채우기

by ADELA_J 2023. 7. 14.

- 표준점수 : 데이터의 평균과 표준편차의 차이

 > 표준점수를 구하면 변환한 데이터의 평균값이 0이 되고 표준편차는 1이 됨. 

  >> 데이터가 표준화되어 서로 다른 데이터를 쉽게 비교할 수 있게 됨.

표준점수를 계산하는 함

▶ 그래서 연도별 lifeExp 열의 표준점수를 계산함. 사용자정의함수를 적용하기 위해 transfrom메서드를 사용

- transfrom 함수 : https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.transform.html

 

- my_zscore는 표준화할뿐 집계는 하지 않아서 데이터 양이 줄어들지 않음. 확인하기 위해 크기 확인

 

<누락값을 평균값으로 처리하기>

- tips 데이터 집합에서 10개의 행 데이터만 가져온다음 total_bill 열의 값 4개를 임의로 선택하여 누락값으로 바꾼것

-np.permutation () : https://numpy.org/doc/stable/reference/random/generated/numpy.random.permutation.html#numpy.random.permutation

-> 근데 단순히 total_bill 의 열의 평균값으로 채우면 안됨.

 >> 왜냐면 남/여 평균으로 봤을때 둘이 비슷하지 않고 차이가 크기 때문에

 >>> 그렇게 되면 전체 평균값을 줄 때 여성 데이터가 남성 데이터의 영향을 많이 받아 훼손될 수 있음.

>>>> 그래서 성별로 그룹화 한다음에 열의 데이터수를 구해봄. 

▶ 보면 total_bill에서 남자는 3개, 여자는 1개의 누락값이 있는 것을 알 수 있음.

 

- 그래서 만든 total_bill 열의 데이터를 성별을 구분해서 받아 평균값을 구하는 함수

- 그리고 성별을 구분한 데이터를 fill_na_mean 함수에 전달하여 평균값을 구한다음에 tips_10에 새로운 열로 추가

▶ 남성과 여성의 누락값을 고려하여 계산한 평균값으로 잘 채워져 음.