年月日季平均运算,pandas中关于时间序列处理,resample

时间序列

生成指定范围的日期,例:
pd.date_range(‘4/1/2018’,‘4/5/2018’)
‘2018-04-01’,2018-04-02’,‘2018-04-03’ …‘2018-04-05’
指定起始或者结束日期,并指定步长(单位是“日”),例:
pd.date_range(start=‘4/1/2018’,periods=5)
pd.date_range(end=‘4/5/2018’,periods=5)

将时间列设为索引,时间的标准格式对应类似于20190101这样的格式,Y为四位年,
df.date = pd.to_datetime(df.date,format="%Y%m%d")

datetime格式标准

在这里插入图片描述

dataFrame按时间聚合

大多标准按时间生成的数据,可以用时间作索引,pandas在时间聚合上有很好的函数应用,用得比较多的就是resample,重采样。比如以分钟为标准的数据,可以聚合成按小时的,日,月,季,或年数据,并且在后面加上mean()、sum()可以求平均值或累计值。

用日数据,按月、季、年统计平均值,例:

原数据格式

在这里插入图片描述
其中有一列为时间,此列在应用resample前设为索引,并转化为时间格式
resample(‘M’) 按月,resample(‘Y’)按年,resample(‘D’)按天。还有Q,按季,T按分,2T每两分钟,3M每三个月。W按周等。

#Author: Wu dongqiao  July 9, 2019
import pandas as pd
import time
path='D:\\CHB.csv'
data=pd.read_csv(path,index_col=0)  #读取数据
#将CHB列中缺失的数据线性插值
data['CHB']=round(data['CHB'].interpolate(method = 'linear', axis=0),1)
#将时间列转为时间格式
data['观测日期']=pd.to_datetime(data['观测日期'],format='%Y%m%d')
#将时间作为索引
data = data.set_index('观测日期')

#保留一位小数
format1=lambda x:"%.1f"%x

#按月进行平均值统计
dfM=data.resample('M').mean()
dfM[['平均气温','平均相对湿度','2M风速','CHB']]=dfM[['平均气温','平均相对湿度','2M风速','CHB']].applymap(format1)#保留一位小数
#保存月平均数据
dfM.to_csv('D:\\舒适指数月平均.csv',encoding='gbk')

#按年进行统计
dfY=data.resample('Y').mean()
dfY[['平均气温','平均相对湿度','2M风速','CHB']]=dfY[['平均气温','平均相对湿度','2M风速','CHB']].applymap(format1) #保留一位小数
#保存年平均数据
dfY.to_csv('D:\\舒适指数年平均.csv',encoding='gbk')

#按季进行统计
dfQ=data['1960-5':'2018-11'].resample('3M').mean()
dfQ[['平均气温','平均相对湿度','2M风速','CHB']]=dfQ[['平均气温','平均相对湿度','2M风速','CHB']].applymap(format1) #保留一位小数
dfQ.to_csv('D:\\舒适指数季平均.csv',encoding='gbk')

结果数据格式

月平均:

在这里插入图片描述

季平均

在这里插入图片描述

年平均(略)

时间值默认显示统计到间隔的最后一天。

  • 10
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
### 回答1: pandas是Python一个非常强大的数据分析库,它提供了高效化运算时间序列处理的功能。在数据分析,我们经常需要对大量数据进行运算处理pandas提供了很多高效的函数和方法,可以大大提高数据处理的效率。同时,pandas也提供了很多时间序列处理的功能,可以方便地对时间序列数据进行处理和分析。因此,pandas在数据分析是一个非常重要的工具。 ### 回答2: Pandas是数据分析领域常用的Python库之一,由于其强大的数据处理和分析能力,已经成为数据科学家的必备之选。 其Pandas高效化运算时间序列处理是两个非常重要的功能,本文将就这两个方面进行详细介绍。 一、Pandas高效化运算 Pandas高效化运算主要涉及两个重要类对象:Series和DataFrame。 (1)Series高效化运算 Series是指一维带标签的数组,通常用于表示时间序列数据。在Pandas,Series对象支持矢量化运算,因此可以实现高效的运算。 具体而言,Series支持诸如加、减、乘、除等数学运算,以及比较运算(例如大于、小于、等于等)。此外,Series还支持apply方法,它可以接受一个函数作为参数,并应用于Series的每个元素上。 (2)DataFrame高效化运算 DataFrame是指二维带标签的数据结构,通常用于表示表格型数据。在PandasDataFrame也支持矢量化运算。可以对每一列进行加、减、乘、除等运算。 此外,DataFrame还支持apply方法,通过对DataFrame的每个元素应用一个函数,能够实现更加复杂的运算。 二、Pandas时间序列处理 除了高效化运算Pandas还具有很强的时间序列分析功能。特别是对于金融数据等时间序列数据,Pandas提供了丰富的扩展和支持。 (1)时间序列数据结构 Pandas表示时间序列的数据结构主要有两个,分别是Timestamp和DatetimeIndex。Timestamp表示单个时间点,而DatetimeIndex则是多个时间点的集合。 (2)时间序列数据的创建和处理Pandas,可以通过多种方式来创建时间序列数据,如使用date_range等,还可以使用resample方法进行重采样等处理。 (3)时间序列数据的可视化 Pandas还提供了强大的绘图功能,能够帮助用户更加直观地理解时间序列数据的变化趋势。通过使用plot方法,可以实现各种图形的绘制,如折线图、柱状图、散点图等。 总之,Pandas的高效化运算时间序列处理功能为数据科学家带来了巨大的便利性,使得他们能够更加快速、精准地从数据提取信息。 ### 回答3: Pandas是一个强大的Python数据分析库,它具有高效的运算时间序列处理能力。这使得Pandas成为数据科学家和分析师的首选工具之一。 Pandas高效化运算主要体现在以下三个方面: 1. 向量化运算 Pandas的向量化运算可以让我们像对待单个数值一样处理整个Series或DataFrame,这比使用Python内置函数循环计算要快很多。此外,Pandas处理向量化运算时,还会使用Cython等高性能库进行加速。 2. apply函数 apply函数是Pandas非常重要的一个函数,它可以让我们对Series或DataFrame的元素进行自定义的处理。使用apply函数,我们可以将自己编写的函数应用于Pandas的所有元素,极大的发挥了Pandas的灵活性和高效性。 3. 分组运算 在数据分析过程,常常需要对数据进行分组运算,然后进行聚合操作。Pandas的分组运算可以非常高效地处理大量数据,例如对数据分组统计、分组计算均值、位数、方差等等。 除了高效的运算能力,Pandas还具有强大的时间序列处理能力。在时间序列数据分析过程,时间索引可谓至关重要,Pandas时间序列工具极大地方便了我们的时间序列处理。 1. 时间序列索引 PandasDataFrame和Series都支持时间序列索引,可以很方便地对时间序列数据进行切片、索引、过滤和重取样等操作。 2. 时间数据重取样 时间数据的采样频率对于数据分析非常重要。Pandas提供了resample方法可以对时间序列数据进行重新采样。例如,我们可以将以天为单位的数据重新采样为以周为单位的数据。 3. 移动窗口函数 移动窗口函数可以计算时间序列数据在移动窗口上的各种统计量,如移动平均、移动标准差等。Pandas提供了rolling函数可以很方便地实现这些操作。 总之,Pandas高效的运算能力和强大的时间序列处理能力使得它成为数据分析工作必不可少的工具之一,同时也方便数据分析者快速处理和分析大量的数据,并有效地发掘数据的价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值