Python Pandas-통계 함수

통계적 방법은 데이터의 동작을 이해하고 분석하는 데 도움이됩니다. 이제 Pandas 객체에 적용 할 수있는 몇 가지 통계 함수를 배웁니다.

Percent_change

시리즈, DatFrames 및 패널에는 모두 기능이 있습니다. pct_change(). 이 함수는 모든 요소를 ​​이전 요소와 비교하고 변경 비율을 계산합니다.

import pandas as pd
import numpy as np
s = pd.Series([1,2,3,4,5,4])
print s.pct_change()

df = pd.DataFrame(np.random.randn(5, 2))
print df.pct_change()

이것의 output 다음과 같습니다-

0        NaN
1   1.000000
2   0.500000
3   0.333333
4   0.250000
5  -0.200000
dtype: float64

            0          1
0         NaN        NaN
1  -15.151902   0.174730
2  -0.746374   -1.449088
3  -3.582229   -3.165836
4   15.601150  -1.860434

기본적으로 pct_change()열에서 작동합니다. 동일한 행을 현명하게 적용하려면axis=1() 논의.

공분산

공분산은 계열 데이터에 적용됩니다. Series 객체에는 계열 객체 간의 공분산을 계산하는 cov 메서드가 있습니다. NA는 자동으로 제외됩니다.

Cov 시리즈

import pandas as pd
import numpy as np
s1 = pd.Series(np.random.randn(10))
s2 = pd.Series(np.random.randn(10))
print s1.cov(s2)

이것의 output 다음과 같습니다-

-0.12978405324

DataFrame에 적용될 때 공분산 방법은 다음을 계산합니다. cov 모든 열 사이.

import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print frame['a'].cov(frame['b'])
print frame.cov()

이것의 output 다음과 같습니다-

-0.58312921152741437

           a           b           c           d            e
a   1.780628   -0.583129   -0.185575    0.003679    -0.136558
b  -0.583129    1.297011    0.136530   -0.523719     0.251064
c  -0.185575    0.136530    0.915227   -0.053881    -0.058926
d   0.003679   -0.523719   -0.053881    1.521426    -0.487694
e  -0.136558    0.251064   -0.058926   -0.487694     0.960761

Note − 관찰 cov 중에서 ab 첫 번째 명령문의 열과 동일한 값이 DataFrame의 cov에서 반환하는 값입니다.

상관 관계

상관 관계는 두 값 배열 (계열) 간의 선형 관계를 보여줍니다. pearson (기본값), spearman 및 kendall과 같은 상관 관계를 계산하는 여러 방법이 있습니다.

import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])

print frame['a'].corr(frame['b'])
print frame.corr()

이것의 output 다음과 같습니다-

-0.383712785514

           a          b          c          d           e
a   1.000000  -0.383713  -0.145368   0.002235   -0.104405
b  -0.383713   1.000000   0.125311  -0.372821    0.224908
c  -0.145368   0.125311   1.000000  -0.045661   -0.062840
d   0.002235  -0.372821  -0.045661   1.000000   -0.403380
e  -0.104405   0.224908  -0.062840  -0.403380    1.000000

DataFrame에 숫자가 아닌 열이 있으면 자동으로 제외됩니다.

데이터 랭킹

데이터 순위는 요소 배열의 각 요소에 대한 순위를 생성합니다. 동점 인 경우 평균 순위를 할당합니다.

import pandas as pd
import numpy as np

s = pd.Series(np.random.np.random.randn(5), index=list('abcde'))
s['d'] = s['b'] # so there's a tie
print s.rank()

이것의 output 다음과 같습니다-

a  1.0
b  3.5
c  2.0
d  3.5
e  5.0
dtype: float64

Rank는 기본적으로 true 인 오름차순 매개 변수를 선택적으로 취합니다. false이면 데이터의 순위가 반대로 지정되고 값이 클수록 더 작은 순위가 할당됩니다.

Rank는 method 매개 변수로 지정된 다른 타이 브레이킹 방법을 지원합니다.

  • average − 동점 그룹의 평균 순위

  • min − 그룹에서 가장 낮은 순위

  • max − 그룹에서 가장 높은 순위

  • first − 배열에 나타나는 순서대로 할당 된 순위