统计方法有助于理解和分析数据的行为。
现在将学习一些统计函数,可以将这些函数应用到 Pandas
的对象上。
系列,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())
0 NaN 1 1.000000 2 0.500000 3 0.333333 4 0.250000 5 -0.200000 dtype: float64
df = pd.DataFrame(np.random.randn(5, 2))
print (df.pct_change())
0 1 0 NaN NaN 1 5.449677 -2.586491 2 -2.696447 -0.955972 3 -0.783166 1.292013 4 -3.032304 -8.387144
默认情况下, pct_change()
对列进行操作;如果想应用到行上,那么可使用 axis = 1
参数。
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.07119404620237274
当应用于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']))
-0.08223346500807792
print (frame.cov())
a b c d e a 1.561804 -0.082233 -0.740882 0.299352 -0.277428 b -0.082233 0.902740 0.871900 0.220147 -0.294888 c -0.740882 0.871900 2.107915 -0.294256 -0.595792 d 0.299352 0.220147 -0.294256 0.533460 -0.074635 e -0.277428 -0.294888 -0.595792 -0.074635 1.134649
注:观察第一个语句中 a
和 b
列之间的 cov
结果值,
与由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'].corr(frame['b']))
0.02682653827537849
print (frame.corr())
a b c d e a 1.000000 0.026827 -0.098364 -0.311444 0.336243 b 0.026827 1.000000 -0.146960 0.377090 -0.064830 c -0.098364 -0.146960 1.000000 -0.110275 -0.469740 d -0.311444 0.377090 -0.110275 1.000000 -0.249519 e 0.336243 -0.064830 -0.469740 -0.249519 1.000000
如果DataFrame中存在任何非数字列,则会自动排除。
import pandas as pd
import numpy as np
s = pd.Series(np.random.randn(5), index=list('abcde'))
在数据筛选场景中出现条件平局/结果并列的情况
s['d'] = s['b']
print (s.rank())
a 5.0 b 1.5 c 4.0 d 1.5 e 3.0 dtype: float64
Rank可选地使用一个默认为true的升序参数; 当错误时,数据被反向排序,较大的值被分配较小的排序。
Rank支持不同的 tie-breaking
方法,用方法参数指定
average
- 并列组平均排序等级min
- 组中最低的排序等级max
- 组中最高的排序等级first
- 按照它们出现在数组中的顺序分配队列