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中的整数求平均并排序
Sep 12 Python
Python中关于字符串对象的一些基础知识
Apr 08 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
Oct 18 Python
Python利用Nagios增加微信报警通知的功能
Feb 18 Python
深入浅析Python中join 和 split详解(推荐)
Jun 30 Python
python 基础教程之Map使用方法
Jan 17 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
python:动态路由的Flask程序代码
Nov 22 Python
如何在django中实现分页功能
Apr 22 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
TensorFlow中tf.batch_matmul()的用法
Jun 02 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
BBS(php & mysql)完整版(一)
2006/10/09 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
php实现分页显示
2015/11/03 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
Python中的index()方法使用教程
2015/05/18 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
法学专业个人求职信
2013/09/26 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
给朋友的赠语
2015/06/23 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
python基础之类方法和静态方法
2021/10/24 Python