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实现斐波那契(Fibonacci)函数
Mar 25 Python
Python实现感知机(PLA)算法
Dec 20 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
python实现按行分割文件
Jul 22 Python
关于Python核心框架tornado的异步协程的2种方法详解
Aug 28 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
Python3连接Mysql8.0遇到的问题及处理步骤
Feb 17 Python
Python日志logging模块功能与用法详解
Apr 09 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
用python 绘制茎叶图和复合饼图
Feb 26 Python
Python利器openpyxl之操作excel表格
Apr 17 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源代码
2013/06/26 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
js 获取radio按钮值的实例
2013/08/17 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
jQuery实现移动端图片上传预览组件的方法分析
2020/05/01 jQuery
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
jQuery实现动态向上滚动
2020/12/21 jQuery
Django中对数据查询结果进行排序的方法
2015/07/17 Python
python&MongoDB爬取图书馆借阅记录
2016/02/05 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
Django实现分页显示效果
2019/10/31 Python
pytorch forward两个参数实例
2020/01/17 Python
Pycharm调试程序技巧小结
2020/08/08 Python
Python用户自定义异常的实现
2020/12/25 Python
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
英文版餐饮业求职信
2013/10/18 职场文书
党支部书记岗位责任制
2014/02/11 职场文书
物业消防安全责任书
2014/07/23 职场文书
贷款委托书怎么写
2014/08/02 职场文书
年终晚会活动方案
2014/08/21 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python