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中的数据存储模块shelve的用法
Mar 03 Python
Python实现按学生年龄排序的实际问题详解
Aug 29 Python
Python多线程扫描端口代码示例
Feb 09 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
python多进程读图提取特征存npy
May 21 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 Python
Python笔记之代理模式
Nov 20 Python
Python 炫技操作之合并字典的七种方法
Apr 10 Python
Python爬虫抓取论坛关键字过程解析
Oct 19 Python
Django通过设置CORS解决跨域问题
Nov 26 Python
python利用文件时间批量重命名照片和视频
Feb 09 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 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使HTML标签自动补全闭合函数代码
2012/10/04 PHP
隐性调用php程序的方法
2015/06/13 PHP
php实现购物车功能(上)
2020/07/23 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
itchat接口使用示例
2017/10/23 Python
Python tkinter事件高级用法实例
2018/01/31 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
学Python 3的理由和必要性
2019/11/19 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
香港通票:Hong Kong Pass
2019/02/26 全球购物
音乐教学反思
2014/02/02 职场文书
园林系毕业生求职信
2014/06/23 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript