pandas中read_csv、rolling、expanding用法详解


Posted in Python onApril 21, 2020

如下所示:

import pandas as pd
from pandas import DataFrame

series = pd.read_csv('daily-min-temperatures.csv',header=0, index_col=0,
      parse_dates=True,squeeze=True)
temps = DataFrame(series.values)
width = 3
shifted = temps.shift(width-1)
print(shifted)
window = shifted.rolling(window=width)
dataframe = DataFrame()
dataframe = pd.concat([window.min(),window.mean(),window.max(),temps],axis=1)
dataframe.columns=['min','mean','max','t+1']
print(dataframe.head(5))

read_csv中参数用法:

当设置 header=None 时,则认为csv文件没有列索引,为其添加相应范围的索引,range(1,1200)指建立索引号从1开始最大到1199的列索引,当数据长度超过范围时,索引沿列数据的右侧对齐。

obj=pd.read_csv('testdata.csv',header=0,names=range(1,4))

当设置 header=0 时,则认为csv文件数据第一行是列索引,将用新的列索引替换旧的列索引。

obj=pd.read_csv('testdata.csv',index_col=0,usecols=[1,2,3])

当设置 index_col=0 时,则是csv文件数据的指定数据中的第一列是行索引,usecols指选中数据的对应列数,[1,2,3]指第2列到第4列。

obj=pd.read_csv('testdata.csv',index_col=0,usecols=5)

用usecols选择前n行数据进行后续处理,n为正整型。

rolling用法:

源代码

def rolling(self, *args, **kwargs):
  """
  Return a rolling grouper, providing rolling functionality per group.
  """
  from pandas.core.window import RollingGroupby

  return RollingGroupby(self, *args, **kwargs)

 @Substitution(name="groupby")
 @Appender(_common_see_also)

pandas中read_csv、rolling、expanding用法详解

用法代码演示

上面我们介绍了滑动窗口的概念及实现函数的参数,下面我们通过代码演示,依次展示各参数的作用。

import matplotlib.pylab as plt
import numpy as np
import pandas as pd
index=pd.date_range('20190116','20190130')
data=[4,8,6,5,9,1,4,5,2,4,6,7,9,13,6]
ser_data=pd.Series(data,index=index)
print(ser_data)

pandas中read_csv、rolling、expanding用法详解

加入rolling使用时间窗后及具体原理

ser_data.rolling(3).mean()

pandas中read_csv、rolling、expanding用法详解

min_periods用法

如上图所示,当窗口开始滑动时,第一个时间点和第二个时间点的时间为空,这是因为这里窗口长度为3,他们前面的数都不够3,所以到2019-01-18时,他的数据就是2019-01-16到2019-01-18三天的均值。那么有人就会这样想,在计算2019-01-16序列的窗口数据时,虽然不够窗口长度3,但是至少有当天的数据,那么能否就用当天的数据代表窗口数据呢?答案是肯定的,这里我们可以通过min_periods参数控制,表示窗口最少包含的观测值,小于这个值的窗口长度显示为空,等于和大于时有值,如下所示:

表示窗口最少包含的观测值为1

ser_data.rolling(3,min_periods=1).mean()

pandas中read_csv、rolling、expanding用法详解

expanding用法

征用前面全部的数据

pandas中read_csv、rolling、expanding用法详解

代码详解

import pandas as pd
from pandas import DataFrame

series = pd.read_csv('daily-min-temperatures.csv',header=0, index_col=0,
      parse_dates=True,squeeze=True)
temps = DataFrame(series.values)
window = temps.expanding()
dataframe = DataFrame()
dataframe = pd.concat([window.min(),window.mean(),window.max(),temps.shift(-1)],axis=1)
dataframe.columns=['min','mean','max','t+1']
print(dataframe.head(5))

输出结果

pandas中read_csv、rolling、expanding用法详解

expanding可去除NaN值

以上这篇pandas中read_csv、rolling、expanding用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python函数学习笔记
Oct 07 Python
Python深入学习之上下文管理器
Aug 31 Python
python网络编程之数据传输UDP实例分析
May 20 Python
深入解析Python编程中super关键字的用法
Jun 24 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 Python
django+echart绘制曲线图的方法示例
Nov 26 Python
python制作抖音代码舞
Apr 07 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 Python
python sorted方法和列表使用解析
Nov 18 Python
python 正则表达式参数替换实例详解
Jan 17 Python
Python利用for循环打印星号三角形的案例
Apr 12 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 Python
Django如何使用jwt获取用户信息
Apr 21 #Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 #Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 #Python
基于python实现数组格式参数加密计算
Apr 21 #Python
python实现与redis交互操作详解
Apr 21 #Python
Django-migrate报错问题解决方案
Apr 21 #Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 #Python
You might like
中国的第一台收音机
2021/03/01 无线电
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
php中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
一个封装js代码-----展开收起效果示例
2013/07/03 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
提取字符串中年月日的函数代码
2013/11/05 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
python文件操作整理汇总
2014/10/21 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python中random模块用法实例分析
2015/05/19 Python
python删除服务器文件代码示例
2018/02/09 Python
Python模块future用法原理详解
2020/01/20 Python
python实现随机加减法生成器
2020/02/24 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
大学四年个人自我小结
2014/03/05 职场文书
个人评语大全
2014/05/04 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
上班迟到检讨书
2015/05/06 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
导游词之任弼时故居
2020/01/07 职场文书
Python中递归以及递归遍历目录详解
2021/10/24 Python