본문 바로가기

배우기/복습노트[Python과 분석]

[복습] Python numpy / pandas 수학통계 함수(메서드) 차이

728x90
반응형

1. 분산/표준편차 기본 수식 차이

 

다음과 같이 변수가 선언되었다.

 

numpy로 분산을 구한 것과 pandas에서 분산을 구한 값이 다르다.

그 이유는 numpy는 수학적 분산을 구한 것이고 (편차 제곱의 합을 n으로 나눔), pandas는 통계적 분산을 구한 것이다(편차 제곱의 합을 n-1로 나눔).

 

따라서 분석기사에서 분산을 구하려면 pandas의 값으로 구하여야 한다.

 

하지만 numpy에서도 통계적 분산을 구하는 방법이 있다.

ddof 가 자유도 옵션인데 default가 0으로 되어있다. 따라서 이 옵션을 1로 넣어주면 통계적 분산을 구할 수 있다.

 

 

반대로 pandas에서도 수학적 분산을 구할 수 있다.

 

마찬가지로 자유도 옵션이 1이 default인데 0으로 바꿔주면 수학적 분산을 구할 수 있다.

 

 

 

 

 

2. NA 처리

위와 같이 변수가 선언되었다.

 

numpy의 sum 메서드는 NA를 무시하지 않고 연산하므로 NA를 포함한 연산결과가 출력되어 값이 항상 NA로 나온다.

 

pandas의 sum 메서드는 NA를 무시하고 연산한다.

 

따라서 NA를 무시하느냐 무시하지 않느냐의 차이가 발생한다.

 

s1.sum? 을 보면 skipna 라는 옵션이 있다. True가 default이기 때문에 na를 무시하고 연산하게 된다.

 

그러나 numpy에는 na를 제거하겠냐는 옵션이 없다.

 

 

예제를 풀어보자.

 

emp에서 COMM의 값이 NA인 경우 NA를 제외한 나머지들의 중앙값으로 대치 후 전체를 평균하여라.

 

 

 

728x90
반응형