Pandas Statistical Functions
import pandas as pd
import random
import numpy as np
n_rows=5
n_cols=2
df = pd.DataFrame(np.random.randn(n_rows, n_cols),
index = pd.date_range('1/1/2000', periods=n_rows),
columns = ['A','B'])
df=df.apply(lambda x:[int(xx*10) for xx in x],axis=0)
df
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | -18 | 3 |
| 2000-01-02 | 5 | -4 |
| 2000-01-03 | -2 | 8 |
| 2000-01-04 | 0 | 1 |
| 2000-01-05 | -18 | 3 |
pct_change
## pct_change() to compute the percent change over a given number of periods
df.pct_change(periods=1) # b{t}=(a{t}-a{t-1})/a{t-1}
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | NaN | NaN |
| 2000-01-02 | -1.277778 | -2.333333 |
| 2000-01-03 | -1.400000 | -3.000000 |
| 2000-01-04 | -1.000000 | -0.875000 |
| 2000-01-05 | -inf | 2.000000 |
df.pct_change(periods=2) # b{t}=(a{t}-a{t-2})/a{t-2}
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | NaN | NaN |
| 2000-01-02 | NaN | NaN |
| 2000-01-03 | -0.888889 | 1.666667 |
| 2000-01-04 | -1.000000 | -1.250000 |
| 2000-01-05 | 8.000000 | -0.625000 |
Covariance
df.cov()
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| A | 114.80 | -17.85 |
| B | -17.85 | 18.70 |
df.A.cov(df.B)
-17.849999999999998
Correlation
df.corr()
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| A | 1.000000 | -0.385253 |
| B | -0.385253 | 1.000000 |
Data ranking
df.rank()
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | 1.5 | 3.5 |
| 2000-01-02 | 5.0 | 1.0 |
| 2000-01-03 | 3.0 | 5.0 |
| 2000-01-04 | 4.0 | 2.0 |
| 2000-01-05 | 1.5 | 3.5 |
df.rank(axis=1)
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | 1.0 | 2.0 |
| 2000-01-02 | 2.0 | 1.0 |
| 2000-01-03 | 1.0 | 2.0 |
| 2000-01-04 | 1.0 | 2.0 |
| 2000-01-05 | 1.0 | 2.0 |
method parameter:
average : average rank of tied group
min : lowest rank in the group
max : highest rank in the group
first : ranks assigned in the order they appear in the array
Window Functions
cumsum
df
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | -18 | 3 |
| 2000-01-02 | 5 | -4 |
| 2000-01-03 | -2 | 8 |
| 2000-01-04 | 0 | 1 |
| 2000-01-05 | -18 | 3 |
df.cumsum()
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | -18 | 3 |
| 2000-01-02 | -13 | -1 |
| 2000-01-03 | -15 | 7 |
| 2000-01-04 | -15 | 8 |
| 2000-01-05 | -33 | 11 |
rolling
df
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | -18 | 3 |
| 2000-01-02 | 5 | -4 |
| 2000-01-03 | -2 | 8 |
| 2000-01-04 | 0 | 1 |
| 2000-01-05 | -18 | 3 |
r=df.rolling(window=2)
r.mean()
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | NaN | NaN |
| 2000-01-02 | -6.5 | -0.5 |
| 2000-01-03 | 1.5 | 2.0 |
| 2000-01-04 | -1.0 | 4.5 |
| 2000-01-05 | -9.0 | 2.0 |
r.count()
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | 1.0 | 1.0 |
| 2000-01-02 | 2.0 | 2.0 |
| 2000-01-03 | 2.0 | 2.0 |
| 2000-01-04 | 2.0 | 2.0 |
| 2000-01-05 | 2.0 | 2.0 |
r.max()
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | NaN | NaN |
| 2000-01-02 | 5.0 | 3.0 |
| 2000-01-03 | 5.0 | 8.0 |
| 2000-01-04 | 0.0 | 8.0 |
| 2000-01-05 | 0.0 | 3.0 |
| Method | Description |
|---|---|
| count() | Number of non-null observations |
| sum() | Sum of values |
| mean() | Mean of values |
| median() | Arithmetic median of values |
| min() | Minimum |
| max() | Maximum |
| std() | Bessel-corrected sample standard deviation |
| var() | Unbiased variance |
| skew() | Sample skewness (3rd moment) |
| kurt() | Sample kurtosis (4th moment) |
| quantile() | Sample quantile (value at %) |
| apply() | Generic apply |
| cov() | Unbiased covariance (binary) |
| corr() | Correlation (binary) |
win_type can specify distribution function.
parameter 'on' to specify a column (rather than the default of the index) in a DataFrame.
df
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | -18 | 3 |
| 2000-01-02 | 5 | -4 |
| 2000-01-03 | -2 | 8 |
| 2000-01-04 | 0 | 1 |
| 2000-01-05 | -18 | 3 |
df.rolling(window='3d',min_periods=3).sum() ## 最近三天
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | NaN | NaN |
| 2000-01-02 | NaN | NaN |
| 2000-01-03 | -15.0 | 7.0 |
| 2000-01-04 | 3.0 | 5.0 |
| 2000-01-05 | -20.0 | 12.0 |
expanding
df
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | -18 | 3 |
| 2000-01-02 | 5 | -4 |
| 2000-01-03 | -2 | 8 |
| 2000-01-04 | 0 | 1 |
| 2000-01-05 | -18 | 3 |
df.expanding().mean() ## statistic with all data up to a point in time
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | -18.00 | 3.000000 |
| 2000-01-02 | -6.50 | -0.500000 |
| 2000-01-03 | -5.00 | 2.333333 |
| 2000-01-04 | -3.75 | 2.000000 |
| 2000-01-05 | -6.60 | 2.200000 |
Exponentially Weighted Windows(ewm)
df
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | -18 | 3 |
| 2000-01-02 | 5 | -4 |
| 2000-01-03 | -2 | 8 |
| 2000-01-04 | 0 | 1 |
| 2000-01-05 | -18 | 3 |
df.ewm(alpha=0.9).mean()
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 2000-01-01 | -18.000000 | 3.000000 |
| 2000-01-02 | 2.909091 | -3.363636 |
| 2000-01-03 | -1.513514 | 6.873874 |
| 2000-01-04 | -0.151215 | 1.586859 |
| 2000-01-05 | -16.215282 | 2.858699 |
Pandas Statistical Functions的更多相关文章
- 小白学 Python 数据分析(2):Pandas (一)概述
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 概览 首先还是几个官方链接放一下: Pandas 官网:https://pandas.pydata.or ...
- Why Apache Spark is a Crossover Hit for Data Scientists [FWD]
Spark is a compelling multi-purpose platform for use cases that span investigative, as well as opera ...
- Scipy教程 - 统计函数库scipy.stats
http://blog.csdn.net/pipisorry/article/details/49515215 统计函数Statistical functions(scipy.stats) Pytho ...
- scipy.stats
scipy.stats Scipy的stats模块包含了多种概率分布的随机变量,随机变量分为连续的和离散的两种.所有的连续随机变量都是rv_continuous的派生类的对象,而所有的离散随机变量都是 ...
- GitHub相关资料&&可以参加的开源项目
GitHub相关的资料 有不懂的地方时可以看GitHub Docs. GitHub tutorial GitHub glossary GitHub的字典,可以看到里面特定的概念. All about ...
- R实战 第十二篇:随机数
由R生成的随机数实际上伪随机数,也就是说,随机数是由某种算法而不是真正的随机过程产生的,随机数生成器需要一个初始值来生成数字,该初始值叫做种子.通过把种子设置为特定的值,可以保证每次运行同一段代码时都 ...
- PP图和QQ图
一. QQ图 分位数图示法(Quantile Quantile Plot,简称 Q-Q 图) 统计学里Q-Q图(Q代表分位数)是一个概率图,用图形的方式比较两个概率分布,把他们 ...
- D01-R语言基础学习
R语言基础学习——D01 20190410内容纲要: 1.R的下载与安装 2.R包的安装与使用方法 (1)查看已安装的包 (2)查看是否安装过包 (3)安装包 (4)更新包 3.结果的重用 4.R处理 ...
- matlab toolboxes 大全
MATLAB Toolboxes top (Top) Audio - Astronomy - BiomedicalInformatics - Chemometrics - Chaos - Chemi ...
随机推荐
- 小小知识点(三十八)MPSK和MQAM调制的实现——利用IQ调制
IQ调制的原理 (一)调制基本原理 (二)调制基本原理 利用IQ调制实现MPSK(QPSK 8PSK BPSK)和MQAM(16QAM 64QAM)调制 (一)利用IQ调制实现QPSK调制 ...
- 【Think In Java笔记】第1章 对象导论
1. 对象导论 OOP 面向对象编程 C.Basic等语言所在的抽象仍要求在解决问题时基于计算机的解决,而不是基于所解决问题的结构来考虑. 要建立起问题空间的元素和解空间的对象之间一一映射的关系 万物 ...
- WebStorm安装和激活
1.下载解压,得到jetbrains webstorm 2018.2主程序,破解文件和中文语言包: 2.运行“WebStorm-2018.2.exe”开始安装,默认安装目录[C:\Program Fi ...
- RabbitMQ远程调用测试用例
RabbitMQ远程调用测试,使用外部机器192.168.174.132上的RabbitMQ,使用之前需要对远程调用进行配置,操作过程见博文“解决RabbitMQ远程不能访问的问题”. SendTes ...
- winds消息大全
本文链接:https://blog.csdn.net/testcs_dn/article/details/42360547 消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如, ...
- JVM之堆的体系结构
一.堆的体系结构 Heap 堆一个JVM 实例只存在一个堆内存,堆内存的大小是可以调节的.类加载器读取了类字节码文件后,需要把类.方法.常量.变最放到堆内存中,保存所有引用类型的真实信息,以便执行器执 ...
- 第一篇博客-- 走上IT路
首先介绍一下本人,我是一名在校大学生,在一次学长分享学习经验时了解到,写博客可以帮助复习.所以这就是我要写博客的原因. 我是非常喜欢网络安全技术,因此我选择了我这个专业.在接下来的一段时间我会在这里记 ...
- [思维导图] C标准库
- go slice与函数传值的理解
go语言中所有的传值方式都是传值操作. 今天遇到了以下代码: func main(){ slice := make([],) fmt.Println(slice) change(s) fmt.Prin ...
- Java知识体系框架
前言:自从出生,每个人都是一个学习者或探索者.永远保持一颗谦逊的心态,遵循一定的方法和规范,去学习和实践,永远记得走走停停,多回头看看自己走过的路,温故而知新,也能更好地指导未来的路怎么走(同样,本篇 ...