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使用PythonMagick将jpg图片转换成ico图片的方法
Mar 26 Python
windows上安装Anaconda和python的教程详解
Mar 28 Python
Python中类的初始化特殊方法
Dec 01 Python
详解Python之unittest单元测试代码
Jan 24 Python
Python字符串的常见操作实例小结
Apr 08 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
python Plotly绘图工具的简单使用
Mar 03 Python
Python多进程编程multiprocessing代码实例
Mar 12 Python
Python应用实现双指数函数及拟合代码实例
Jun 19 Python
django rest framework 过滤时间操作
Jul 12 Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 Python
Python中读取文件名中的数字的实例详解
Dec 25 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 str_pad 函数使用详解
2009/01/13 PHP
php下使用curl模拟用户登陆的代码
2010/09/10 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
vue项目环境变量配置的实现方法
2018/10/12 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
在Django框架中编写Context处理器的方法
2015/07/20 Python
python实现简单中文词频统计示例
2017/11/08 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
python中字符串内置函数的用法总结
2018/09/13 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
迪奥官网:Dior.com
2018/12/04 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
公关关系专员的自我评价分享
2013/11/20 职场文书
研究生求职推荐信范文
2013/11/30 职场文书
给老婆的婚前保证书
2014/02/01 职场文书
优秀护士获奖感言
2014/02/20 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
承诺保证书格式
2015/02/28 职场文书
MySQL中连接查询和子查询的问题
2021/09/04 MySQL