Python Pandas 统计函数

Python Pandas 统计函数

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

百分比变化

Series、DataFrames和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() 参数。

Covariance

协方差应用于系列数据。Series对象有一个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时,数据被反向排名,较大的值被分配较小的排名。

排名支持不同的决胜方法,使用method参数指定 –

  • 平均(average) - 组内并列的平均排名

  • 最小(min) - 组内最低的排名

  • 最大(max) - 组内最高的排名

  • 首位(first) - 按照数组中出现的顺序分配排名

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程