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的更多相关文章

  1. 小白学 Python 数据分析(2):Pandas (一)概述

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 概览 首先还是几个官方链接放一下: Pandas 官网:https://pandas.pydata.or ...

  2. 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 ...

  3. Scipy教程 - 统计函数库scipy.stats

    http://blog.csdn.net/pipisorry/article/details/49515215 统计函数Statistical functions(scipy.stats) Pytho ...

  4. scipy.stats

    scipy.stats Scipy的stats模块包含了多种概率分布的随机变量,随机变量分为连续的和离散的两种.所有的连续随机变量都是rv_continuous的派生类的对象,而所有的离散随机变量都是 ...

  5. GitHub相关资料&&可以参加的开源项目

    GitHub相关的资料 有不懂的地方时可以看GitHub Docs. GitHub tutorial GitHub glossary GitHub的字典,可以看到里面特定的概念. All about ...

  6. R实战 第十二篇:随机数

    由R生成的随机数实际上伪随机数,也就是说,随机数是由某种算法而不是真正的随机过程产生的,随机数生成器需要一个初始值来生成数字,该初始值叫做种子.通过把种子设置为特定的值,可以保证每次运行同一段代码时都 ...

  7. PP图和QQ图

     一. QQ图      分位数图示法(Quantile Quantile Plot,简称 Q-Q 图)       统计学里Q-Q图(Q代表分位数)是一个概率图,用图形的方式比较两个概率分布,把他们 ...

  8. D01-R语言基础学习

    R语言基础学习——D01 20190410内容纲要: 1.R的下载与安装 2.R包的安装与使用方法 (1)查看已安装的包 (2)查看是否安装过包 (3)安装包 (4)更新包 3.结果的重用 4.R处理 ...

  9. matlab toolboxes 大全

    MATLAB Toolboxes top (Top) Audio - Astronomy - BiomedicalInformatics - Chemometrics  - Chaos - Chemi ...

随机推荐

  1. 小小知识点(三十八)MPSK和MQAM调制的实现——利用IQ调制

    IQ调制的原理 (一)调制基本原理 (二)调制基本原理 利用IQ调制实现MPSK(QPSK 8PSK BPSK)和MQAM(16QAM 64QAM)调制     (一)利用IQ调制实现QPSK调制   ...

  2. 【Think In Java笔记】第1章 对象导论

    1. 对象导论 OOP 面向对象编程 C.Basic等语言所在的抽象仍要求在解决问题时基于计算机的解决,而不是基于所解决问题的结构来考虑. 要建立起问题空间的元素和解空间的对象之间一一映射的关系 万物 ...

  3. WebStorm安装和激活

    1.下载解压,得到jetbrains webstorm 2018.2主程序,破解文件和中文语言包: 2.运行“WebStorm-2018.2.exe”开始安装,默认安装目录[C:\Program Fi ...

  4. RabbitMQ远程调用测试用例

    RabbitMQ远程调用测试,使用外部机器192.168.174.132上的RabbitMQ,使用之前需要对远程调用进行配置,操作过程见博文“解决RabbitMQ远程不能访问的问题”. SendTes ...

  5. winds消息大全

    本文链接:https://blog.csdn.net/testcs_dn/article/details/42360547 消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如, ...

  6. JVM之堆的体系结构

    一.堆的体系结构 Heap 堆一个JVM 实例只存在一个堆内存,堆内存的大小是可以调节的.类加载器读取了类字节码文件后,需要把类.方法.常量.变最放到堆内存中,保存所有引用类型的真实信息,以便执行器执 ...

  7. 第一篇博客-- 走上IT路

    首先介绍一下本人,我是一名在校大学生,在一次学长分享学习经验时了解到,写博客可以帮助复习.所以这就是我要写博客的原因. 我是非常喜欢网络安全技术,因此我选择了我这个专业.在接下来的一段时间我会在这里记 ...

  8. [思维导图] C标准库

  9. go slice与函数传值的理解

    go语言中所有的传值方式都是传值操作. 今天遇到了以下代码: func main(){ slice := make([],) fmt.Println(slice) change(s) fmt.Prin ...

  10. Java知识体系框架

    前言:自从出生,每个人都是一个学习者或探索者.永远保持一颗谦逊的心态,遵循一定的方法和规范,去学习和实践,永远记得走走停停,多回头看看自己走过的路,温故而知新,也能更好地指导未来的路怎么走(同样,本篇 ...