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 基础学习第二弹 类属性和实例属性
Aug 27 Python
python 调用HBase的简单实例
Dec 18 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 Python
在java中如何定义一个抽象属性示例详解
Aug 18 Python
利用Python爬取微博数据生成词云图片实例代码
Aug 31 Python
python打开windows应用程序的实例
Jun 28 Python
python线程安全及多进程多线程实现方法详解
Sep 27 Python
windows中安装Python3.8.0的实现方法
Nov 19 Python
Python字符串格式化输出代码实例
Nov 22 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
Jun 15 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 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下的权限算法的实现
2007/04/28 PHP
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
PHP设置进度条的方法
2015/07/08 PHP
php对象工厂类完整示例
2018/08/09 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
页面使用密码保护代码
2013/04/10 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
react native 获取地理位置的方法示例
2018/08/28 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
python正则分析nginx的访问日志
2017/01/17 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
2020/03/09 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
工作态度检讨书
2014/02/11 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
法定授权委托证明书
2015/06/18 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技