- Python Pandas 教程
- Python Pandas - 首页
- Python Pandas - 简介
- Python Pandas - 环境搭建
- Python Pandas - 基础
- Python Pandas - 数据结构介绍
- Python Pandas - 索引对象
- Python Pandas - 面板
- Python Pandas - 基本功能
- Python Pandas - 索引和数据选择
- Python Pandas - Series
- Python Pandas - Series
- Python Pandas - 切片 Series 对象
- Python Pandas - Series 对象的属性
- Python Pandas - Series 对象的算术运算
- Python Pandas - 将 Series 转换为其他对象
- Python Pandas - DataFrame
- Python Pandas - DataFrame
- Python Pandas - 访问 DataFrame
- Python Pandas - 切片 DataFrame 对象
- Python Pandas - 修改 DataFrame
- Python Pandas - 从 DataFrame 中删除行
- Python Pandas - DataFrame 的算术运算
- Python Pandas - I/O 工具
- Python Pandas - I/O 工具
- Python Pandas - 使用 CSV 格式
- Python Pandas - 读取和写入 JSON 文件
- Python Pandas - 从 Excel 文件读取数据
- Python Pandas - 将数据写入 Excel 文件
- Python Pandas - 处理 HTML 数据
- Python Pandas - 剪贴板
- Python Pandas - 使用 HDF5 格式
- Python Pandas - 与 SQL 的比较
- Python Pandas - 数据处理
- Python Pandas - 排序
- Python Pandas - 重索引
- Python Pandas - 迭代
- Python Pandas - 连接
- Python Pandas - 统计函数
- Python Pandas - 描述性统计
- Python Pandas - 处理文本数据
- Python Pandas - 函数应用
- Python Pandas - 选项和自定义
- Python Pandas - 窗口函数
- Python Pandas - 聚合
- Python Pandas - 合并/连接
- Python Pandas - 多级索引
- Python Pandas - 多级索引基础
- Python Pandas - 使用多级索引进行索引
- Python Pandas - 使用多级索引进行高级重索引
- Python Pandas - 重命名多级索引标签
- Python Pandas - 对多级索引进行排序
- Python Pandas - 二元运算
- Python Pandas - 二元比较运算
- Python Pandas - 布尔索引
- Python Pandas - 布尔掩码
- Python Pandas - 数据重塑和透视
- Python Pandas - 透视
- Python Pandas - 堆叠和解堆叠
- Python Pandas - 熔化
- Python Pandas - 计算虚拟变量
- Python Pandas - 分类数据
- Python Pandas - 分类数据
- Python Pandas - 分类数据的排序和排序
- Python Pandas - 分类数据的比较
- Python Pandas - 处理缺失数据
- Python Pandas - 缺失数据
- Python Pandas - 填充缺失数据
- Python Pandas - 缺失值的插值
- Python Pandas - 删除缺失数据
- Python Pandas - 使用缺失数据进行计算
- Python Pandas - 处理重复数据
- Python Pandas - 重复数据
- Python Pandas - 计数和检索唯一元素
- Python Pandas - 重复标签
- Python Pandas - 分组和聚合
- Python Pandas - GroupBy
- Python Pandas - 时间序列数据
- Python Pandas - 日期功能
- Python Pandas - Timedelta
- Python Pandas - 稀疏数据结构
- Python Pandas - 稀疏数据
- Python Pandas - 可视化
- Python Pandas - 可视化
- Python Pandas - 其他概念
- Python Pandas - 注意事项和陷阱
- Python Pandas 有用资源
- Python Pandas - 快速指南
- Python Pandas - 有用资源
- Python Pandas - 讨论
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
注意:观察第一个语句中a和b列之间的cov,它与 DataFrame 上 cov 返回的值相同。
测量相关性
相关性显示任何两个值数组(序列)之间的线性关系。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'] # 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 可选地接受一个参数 ascending,默认值为 true;当为 false 时,数据会反向排名,较大的值分配较小的排名。它支持不同的系数分解方法,由 method 参数指定:
average: 系数组的平均排名
min: 组中的最低排名
max: 组中的最高排名
first: 按其在数组中出现的顺序分配排名