Pandas 统计函数怎么用?Python 数据分析统计方法详解

文章导读
上一个 测验 下一个 在数据分析中,理解数据中的模式和关系至关重要。Pandas 中的统计方法有助于从数据中提取有意义的信息、模式和关系,使您能够做出决策并分析数据的行为。
📋 目录
  1. 分析分数变化
  2. 理解协方差
  3. 测量相关性
  4. 数据排名
A A

Python Pandas - 统计函数



上一个
测验
下一个

在数据分析中,理解数据中的模式和关系至关重要。Pandas 中的统计方法有助于从数据中提取有意义的信息、模式和关系,使您能够做出决策并分析数据的行为。

在本教程中,我们将探索 Pandas 中提供的一些关键统计函数。这些函数旨在帮助您以不同方式总结和理解数据。无论您想测量随时间的变化、评估变量之间的关系,还是对数据进行排名,Pandas 都提供了所需的工具。

分析分数变化

Pandas 中的 pct_change() 函数计算当前元素与其前一个元素之间的分数变化。它是理解数据随时间演变的宝贵工具,常用于金融数据分析。

示例

以下是使用 pct_change() 方法计算 Pandas Series 和 DataFrame 中当前元素与其前一个元素之间的分数变化的示例。

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

理解协方差

协方差衡量两个变量如何共同变化。在 Pandas 中,cov() 方法计算两个 Series 对象之间的协方差,或 DataFrame 中所有列对之间的协方差。

示例

以下是使用 Series.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.02429227824398636

示例

当对 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

注意: 请观察第一条语句中 ab 列之间的 cov,这与 DataFrame 上 cov 返回的值相同。

测量相关性

相关性显示任意两个值数组(series)之间的线性关系。Pandas 的 corr() 函数支持不同的相关性方法,包括 Pearson(默认)、Spearman 和 Kendall。

示例

此示例使用 corr() 函数计算 DataFrame 两个列之间的相关性。

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 中存在非数值列,将自动排除。

数据排名

rank() 函数为 Series 或 DataFrame 中的元素分配排名。在多个元素具有相同值的情况下,默认分配平均排名,但可以调整此行为。

示例

以下示例使用 rank() 方法计算 Series 元素的数值排名。

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  1.0
b  3.5
c  2.0
d  3.5
e  5.0
dtype: float64

rank 可选地接受一个 ascending 参数,默认值为 true;当为 false 时,数据按逆序排名,较大值分配较小的排名。它支持不同的平局处理方法,通过 method 参数指定 −

  • average: 平局组的平均排名

  • min: 组中的最低排名

  • max: 组中的最高排名

  • first: 按数组中出现顺序分配排名