- 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 - 日期功能
- Python Pandas - Timedelta
- Python Pandas - 分类数据
- Python Pandas - 可视化
- Python Pandas - IO 工具
- Python Pandas - 稀疏数据
- Python Pandas - 注意事项和陷阱
- 与SQL的比较
- Python Pandas 有用资源
- Python Pandas - 快速指南
- Python Pandas - 有用的资源
- Python Pandas - 讨论
Python Pandas - 统计函数
统计方法有助于理解和分析数据的Behave。我们现在将学习一些可以应用于 Pandas 对象的统计函数。
变化百分比
Series、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 来计算 Series 对象之间的协方差。NA 将被自动排除。
冠状病毒系列
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 可选地接受参数 ascending,默认为 true;当为 false 时,数据将被反向排名,较大的值分配较小的排名。
Rank 支持不同的平局打破方法,用方法参数指定 -
平均- 平局组的平均排名
min - 组中的最低排名
max - 组中的最高排名
first - 按照数组中出现的顺序分配排名