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 list转dict示例分享
Jan 28 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
python经典趣味24点游戏程序设计
Jul 26 Python
Python threading的使用方法解析
Aug 28 Python
python 实现turtle画图并导出图片格式的文件
Dec 07 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
python交互模式基础知识点学习
Jun 18 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
django rest framework使用django-filter用法
Jul 15 Python
python向企业微信发送文字和图片消息的示例
Sep 28 Python
Django contrib auth authenticate函数源码解析
Nov 12 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
yii操作session实例简介
2014/07/31 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
JavaScript 指导方针
2007/04/05 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
详解Python locals()的陷阱
2019/03/26 Python
python变量的存储原理详解
2019/07/10 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
python实现人像动漫化的示例代码
2020/05/17 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
给导游的表扬信
2014/01/10 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
生物技术专业求职信
2014/06/10 职场文书
关于环保的标语
2014/06/13 职场文书
国庆节活动总结
2014/08/26 职场文书
学籍证明模板
2015/06/18 职场文书
运动会主持词大全
2015/07/02 职场文书
赡养老人协议书范本
2015/08/06 职场文书