English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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将被自动排除。
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 − 행 열이 등장하는 배열의 순서로 배치됩니다.