pandas 常用函数笔记

Pandas 是一个强大的分析结构化数据的工具,它基于 Numpy(提供高性能的矩阵运算三方库),是 Python 数据挖掘和数据分析领域的事实标准三方库。
这里有很全面的Pandas教程:pandas 教程,该教程不需要去先学习 python 和 numpy 库。

pandas 时间类型移动窗口

点击查看代码
dft = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]},
                   index=pd.date_range('20130101 09:00:00',
                                       periods=5,
                                       freq='s')) 
dft

                       B
2013-01-01 09:00:00  0.0
2013-01-01 09:00:01  1.0
2013-01-01 09:00:02  2.0
2013-01-01 09:00:03  NaN
2013-01-01 09:00:04  4.0


dft.rolling(2).sum()

                       B
2013-01-01 09:00:00  NaN
2013-01-01 09:00:01  1.0
2013-01-01 09:00:02  3.0
2013-01-01 09:00:03  NaN
2013-01-01 09:00:04  NaN


dft.rolling(2, min_periods=1).sum()

                       B
2013-01-01 09:00:00  0.0
2013-01-01 09:00:01  1.0
2013-01-01 09:00:02  3.0
2013-01-01 09:00:03  2.0
2013-01-01 09:00:04  4.0

也就是说: rall(n)就是把倒数n-1个数 与 当前数,做操作,做的操作可以是sum,mean等。 其中:min_periods是指每个窗口最少包含的观测值数量,小于这个值的窗口结果为NA。值可以是int,默认None。offset情况下,默认为1

通过rolling()函数与聚合函数的拼接,组成新的函数,可以更方便地实现窗口函数的功能;
这种用法,功能强大,代码简单,所有参数的设置基本一致;
列举如下
rolling_count() 计算各个窗口中非NA观测值的数量
rolling_sum() 计算各个移动窗口中的元素之和
rolling_mean() 计算各个移动窗口中元素的均值
rolling_median() 计算各个移动窗口中元素的中位数
rolling_var() 计算各个移动窗口中元素的方差
rolling_std() 计算各个移动窗口中元素的标准差
rolling_min() 计算各个移动窗口中元素的最小值
rolling_max() 计算各个移动窗口中元素的最大值
rolling_corr() 计算各个移动窗口中元素的相关系数
rolling_corr_pairwise() 计算各个移动窗口中配对数据的相关系数
rolling_cov() 计算各个移动窗口中元素的的协方差
rolling_quantile() 计算各个移动窗口中元素的分位数

除了支持聚合函数,通过rolling().apply()方法,还可以在移动窗口上使用自己定义的函数,实现某些特殊功能;唯一需要满足的是,在数组的每一个片段上,函数必须产生单个值;参考https://www.jianshu.com/p/b8c795345e93

pandas Series.expanding用法及代码示例

pandas.DataFrame.expanding函数方法的使用
用法:

Series.expanding(self, min_periods=1, center=False, axis=0)

  • expanding()函数的参数,与rolling()函数的参数用法相同;该窗口可生成该统计的值以及该时间点之前所有可用的数据。
  • rolling()函数,是固定窗口大小,进行滑动计算,expanding()函数只设置最小的观测值数量,不固定窗口大小,实现累计计算,即不断扩展;也就是说当rolling()函数的参数window=len(df)时,实现的效果与expanding()函数是一样的。
  • expanding().sum()函数,类似cumsum()函数的累计求和,其优势在于还可以进行更多的聚类计算;

参考;
Pandas进阶之窗口函数rolling()和expanding()

上一篇:墨西哥能源改革


下一篇:(前端) 获取当前浏览器类型、获取IE浏览器版本