pandas中read_csv、rolling、expanding用法详解
作者:Suiiiii 发布时间:2022-03-01 06:09:30
如下所示:
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)
用法代码演示
上面我们介绍了滑动窗口的概念及实现函数的参数,下面我们通过代码演示,依次展示各参数的作用。
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)
加入rolling使用时间窗后及具体原理
ser_data.rolling(3).mean()
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()
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))
输出结果
expanding可去除NaN值
来源:https://blog.csdn.net/Suiiiii/article/details/104355206
猜你喜欢
- 于是我登陆主机的管理面板,重启了网站服务,ldb文件就消失了,网站打开也正常了,但过了数小时后,网站又再次出现以上情况,此种情况持续了好一段
- 这个教程,我们将展示如何用python创建一个井字游戏。 其中我们将使用函数、数组、if条件语句、while循环语句和错误捕获等
- var obj=document.getElementById("id");得到的是dom对象,对该对象进行操作的时候使
- 1.简介在学习沐神的深度学习的课程时,发现没有安装torchtext,遂直接尝试pip install torchtext 命令安装,但是安
- 理论介绍分词是自然语言处理的一个基本工作,中文分词和英文不同,字词之间没有空格。中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文
- //关闭,父窗口弹出对话框,子窗口直接关闭this.Response.Write("<script language=jav
- 一、需求描述web 自动化测试/python爬虫往往会遇到扫码登录的情况,不是所有的网站都支持用户密码登录,遇到这种扫码登录的情况会阻碍我们
- 我就废话不多说了,大家还是直接看代码吧!stdi, stdo, stde = sys.stdin, sys.stdout, sys.stde
- 给图像添加颜色在使用OpenCV操作图像时,有时候需要给图像添加不同的颜色,以达到不同的风格效果。这里介绍的主要是opencv中的cv.ap
- 本文将介绍PHP中单引号和双引号的区别。PHP中单引号和双引号简介在 PHP 中,我们使用引号来指定值是字符串文字。有两种不同类型的报价。它
- python3的多行输入问题因为在OJ上做编程,要求标准输入,特别是多行输入。特意查了资料,自己验证了可行性。if __name__ ==
- 本文实例讲述了Python实现的求解最大公约数算法。分享给大家供大家参考,具体如下:使用Python求解两个数的最大公约数的时候用到了前面介
- sql="select * from admin where users='"&users&&q
- 在日常使用Python做爬虫,一般会用到以下手段:请求URL,返回HTML文本,然后通过xpath、css或者re,提取数据有些网页的数据通
- 问题描述今天在使用Numpy中的矩阵做相减操作时,出现了一些本应为负值的位置自动转换为了正值,观察发现转换后的正值为原本的负值加上256得到
- 在这篇文章里,我们将会探索如何使用Python语言作为一个工具来检测Linux系统各种运行信息。让我们一起来学习吧。哪种Python?当我提
- 本文实例讲述了python实现可将字符转换成大写的tcp服务器。分享给大家供大家参考。具体分析如下:下面的python代码执行后通过tcp监
- 今天为大家介绍一下python中与class 相关的知识……获取对象的类名python是一门面向对象的语言,对于一切接对象的pyt
- 前言本篇来学习pytest中内置fixture中临时目录的使用tmpdirtmpdir作用范围是函数级别,创建临时文件供单个测试点调用# -
- 引言 亚马逊网站相较于国内的购物网站,可以直接使用python的最基本的request