pandas相关系数与协方差计算实战:pct_change、corr、cov详解

沿途有光
沿途有光
发布时间:2026-10-13| 2人浏览过
原创

本文详解pandas中计算相关系数与协方差的核心方法。通过实例演示如何使用pct_change计算百分比变化,利用corr和cov计算列间相关性与协方差矩阵,并讲解DataFrame与Series间的对齐计算规则及axis参数的应用,帮助开发者掌握数据统计分析基础。

计算百分比变化与查看指定行数

首先介绍如何获取数据的百分比变化以及查看指定行数的数据。在pandas中,可以通过调用相关方法实现这一需求,具体代码实现见下方示例。


  a = np.arange(1,13).reshape(6,2)
  data = DataFrame(a)
  #计算列的百分比变化,如果想计算行设置axis=1
  print(data.pct_change())
  '''
       0     1
   0    NaN    NaN
   1 2.000000 1.000000
   2 0.666667 0.500000
   3 0.400000 0.333333
   4 0.285714 0.250000
   5 0.222222 0.200000
  '''
  #输出前五行,默认是5,可以通过设置n参数来设置输出的行数
  print(data.head())
  '''
    0  1
  0 1  2
  1 3  4
  2 5  6
  3 7  8
  4 9 10
  '''
  #输出最后五行
  print(data.tail())
  '''
    0  1
  1  3  4
  2  5  6
  3  7  8
  4  9 10
  5 11 12
  '''

计算DataFrame列间的相关系数与协方差

接下来演示如何计算DataFrame中各列之间的相关系数与协方差。这通常涉及对数据列进行统计关联分析,具体操作代码如下所示。


 a = np.arange(1,10).reshape(3,3)
  data = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
  print(data)
  '''
    one two three
  a  1  2   3
  b  4  5   6
  c  7  8   9
  '''
  #计算第一列和第二列的相关系数
  print(data.one.corr(data.two))
  #1.0
  #返回一个相关系数矩阵
  print(data.corr())
  '''
      one two three
  one  1.0 1.0  1.0
  two  1.0 1.0  1.0
  three 1.0 1.0  1.0
  '''
  #计算第一列和第二列的协方差
  print(data.one.cov(data.two))
  #9.0
  #返回一个协方差矩阵
  print(data.cov())
  '''
      one two three
  one  9.0 9.0  9.0
  two  9.0 9.0  9.0
  three 9.0 9.0  9.0
  '''

计算DataFrame与列或Series的相关系数

此外,还可以计算整个DataFrame与特定列或Series之间的相关系数。这种跨对象的相关性计算在实际数据分析中同样常见,参考以下代码实现。


  a = np.arange(1,10).reshape(3,3)
  data = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
  print(data)
  '''
    one two three
  a  1  2   3
  b  4  5   6
  c  7  8   9
  '''
  #计算data与第三列的相关系数
  print(data.corrwith(data.three))
  '''
  one   1.0
  two   1.0
  three  1.0
  '''
  #计算data与Series的相关系数
  #在定义Series的时候,索引一定要去DataFrame的索引一样
  s = Series([5,3,1],index=["a","b","c"])
  print(data.corrwith(s))
  '''
  one   -1.0
  two   -1.0
  three  -1.0
  '''

索引对齐与axis参数注意事项

需要特别注意,当使用DataFrame或Series计算相关系数或协方差时,系统会依据索引对齐原则,仅对索引重叠且非NA的数据进行计算。对于无法对齐的索引部分,将自动填充为NA值。默认情况下,计算均针对DataFrame的列进行;若需改为对行进行计算,只需将axis参数设置为1即可。

以上内容涵盖了pandas中相关系数与协方差的主要应用场景与实现方式,旨在为读者提供实用的参考。希望这些示例能帮助大家在数据处理工作中更高效地运用相关功能。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。