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 初始化多维数组代码
Sep 06 Python
python实现rest请求api示例
Apr 22 Python
Python生成密码库功能示例
May 23 Python
Python实现简单生成验证码功能【基于random模块】
Feb 10 Python
python pycurl验证basic和digest认证的方法
May 02 Python
12个Python程序员面试必备问题与答案(小结)
Jun 24 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
Python的pygame安装教程详解
Feb 10 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
Mar 09 Python
Python selenium文件上传下载功能代码实例
Apr 13 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 Python
python实现AHP算法的方法实例(层次分析法)
Sep 09 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
PHP安装攻略:常见问题解答(三)
2006/10/09 PHP
php函数与传递参数实例分析
2014/11/15 PHP
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
jQuery select操作控制方法小结
2010/05/26 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
vue form check 表单验证的实现代码
2018/12/09 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
Python+OpenCV让电脑帮你玩微信跳一跳
2018/01/04 Python
python PyTorch预训练示例
2018/02/11 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
Python中字符串与编码示例代码
2019/05/20 Python
通过python3实现投票功能代码实例
2019/09/26 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
应届护士求职信范文
2014/01/26 职场文书
人力资源主管职责范本
2014/03/05 职场文书
法人委托书的范本格式
2014/09/11 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
好媳妇事迹材料
2014/12/24 职场文书
贷款工资证明范本
2015/06/12 职场文书
病假条格式范文
2015/08/17 职场文书
诚信考试主题班会
2015/08/17 职场文书
Python数据分析之绘图和可视化详解
2021/06/02 Python