2016-06-30 2 views
1

각 열에 대해 np.var()를 계산하는 방법은 무엇입니까? np.var() < 0.1 인 경우 열을 제거하십시오.팬더는 각 열에 대해 np.var()를 계산합니다.

Id F M R 
7 1 286 907 
12 1 286 907 
17 1 186 1271 
21 1 296 905 
30 1 308 908 
32 1 267 905 
40 2 591 788 
41 1 486 874 
47 1 686 906 
74 1 230 907 
+0

스크립트 plz을 게시 할 수 있습니까? – Deadpool

답변

1

이 시도 :

In [62]: df[df.columns[(df.var(ddof=0) >= 1.0)]] 
Out[62]: 
    Id M  R 
0 7 286 907 
1 12 286 907 
2 17 186 1271 
3 21 296 905 
4 30 308 908 
5 32 267 905 
6 40 591 788 
7 41 486 874 
8 47 686 906 
9 74 230 907 

설명 :

In [64]: (df.var(ddof=0) >= 1.0) 
Out[64]: 
Id  True 
F  False 
M  True 
R  True 
dtype: bool 


In [61]: df.columns[(df.var(ddof=0) >= 1.0)] 
Out[61]: Index(['Id', 'M', 'R'], dtype='object') 

In [62]: df[df.columns[(df.var(ddof=0) >= 1.0)]] 
Out[62]: 
    Id M  R 
0 7 286 907 
1 12 286 907 
2 17 186 1271 
3 21 296 905 
4 30 308 908 
5 32 267 905 
6 40 591 788 
7 41 486 874 
8 47 686 906 
9 74 230 907 

PS의 감사 @ayhan하는 - 그가 pandas's var()ddof=1 매개 변수에 대한 기본값을 사용하고 numpy's implementation 것을 발견했다은, 기본적으로 ddof=0를 사용 .

+1

정확한 np.var의 경우 pandas var에'ddof = 0'을 전달해야합니다. 기본적으로 팬더는 모집단 분산과 반대로 표본 분산을 계산합니다. – ayhan

+1

@ayhan, 좋은 캐치! 고마워요! 내 대답을 바로 잡았어. – MaxU

관련 문제