Pandas统计函数 Pandas索引和选择数据 Pandas窗口函数 统计方法有助于理解和分析数据的行为。现在我们将学习一些统计函数,我们可以将这些函数应用于Pandas对象。 PERCENT_CHANGE 序列,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() 参数。 协方差 协方差应用于序列数据。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) 其 输出 如下 - -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的升序参数; 当错误时,数据被反向排序,较大的值被指定为较小的排名。 Rank支持不同的tie-breaking方法,用方法参数指定 - average 群体平均等级 min - 组中最低的等级 max - 组中的最高等级 first 按照它们出现在数组中的顺序进行分配 Pandas索引和选择数据 Pandas窗口函数