English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Pandas 통계 함수

Pandas 统计函数的操作实例

统计方法有助于理解和分析数据的行为。现在,我们将学习一些统计函数,可以将它们应用于Pandas对象。

百分比变化

Series,DatFrames和Panel都具有功能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())

실행 결과:

 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()参数。

协方差

协方差应用于序列数据。系列对象具有方法cov来计算系列对象之间的协方差。NA将被自动排除。

Cov Series

 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))

실행 결과:

   -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())

실행 결과:

 -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

첫 번째 문장에서 a와 b 열 간의 cov 값을 관찰하세요. 이는 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())

실행 결과:

 -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())

실행 결과:

 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 − 행 열이 등장하는 배열의 순서로 배치됩니다.