数据科学与python语言——Pandas统计分析基础(时间转换+聚合)

Pandas统计分析基础(时间转换+聚合)

  • 实验要求一
  • 实验二要求
  • 全部代码

实验要求一

在这里插入图片描述

#M表的时间戳类型转为datetime
data_Mete['TIMESTAMP']=pd.to_datetime(data_Mete['TIMESTAMP'],format='%Y%m%d%H%M%S')

在这里插入图片描述

data_VI['Date']=pd.to_datetime(data_VI['Date'],format='%Y/%m/%d')
print(data_VI['Date'])

在这里插入图片描述


#M表添加一个Date列 只包含年月日 
data_Mete['Date']=[i.date() for i in data_Mete['TIMESTAMP']]
#根据Date分组 聚合到日
data_Mete_group=data_Mete.groupby(by='Date',as_index=False)
#对于每一个分组各列的多个值应用不同的方法
data1=data_Mete_group.agg({'TA':[np.max,np.min,np.mean],'P':np.sum,'RG':np.mean,'GPP':np.mean,'GPP_QC':calpercent})
print(data1)

在这里插入图片描述

import numpy as np
import pandas as pd
from matplotlib import pyplot as pltdef calpercent(data):#计算0和1占比cnt01=sum(data==0)+sum(data==1)return cnt01/data.size
data_Mete=pd.read_csv('./data/Mete_FR-Gri.csv')
data_VI=pd.read_csv('./data/VI_FR-Gri.csv')#M表的时间戳类型转为datetime
data_Mete['TIMESTAMP']=pd.to_datetime(data_Mete['TIMESTAMP'],format='%Y%m%d%H%M%S')
print(data_Mete['TIMESTAMP'])
data_VI['Date']=pd.to_datetime(data_VI['Date'],format='%Y/%m/%d')
print(data_VI['Date'])#M表添加一个Date列 只包含年月日 
data_Mete['Date']=[i.date() for i in data_Mete['TIMESTAMP']]
#根据Date分组 聚合到日
data_Mete_group=data_Mete.groupby(by='Date',as_index=False)#对于每一个分组各列的多个值应用不同的方法
data1=data_Mete_group.agg({'TA':[np.max,np.min,np.mean],'P':np.sum,'RG':np.mean,'GPP':np.mean,'GPP_QC':calpercent})
print(data1)
#重置列名
data1.columns=['Date','TA_Max', 'TA_Min', 'TA_Mean', 'P', 'RG', 'GPP', 'GPP_QC']data1['Date']=pd.to_datetime(data1['Date'])
print(data1['Date'])
mergedata=pd.merge(data1,data_VI,on='Date')#两个表按照日期列合并mergedata.to_csv('./1test5_1.csv')
print('合并表格完成')

实验二要求

在这里插入图片描述

全部代码


import numpy as np
import pandas as pd
from matplotlib import pyplot as pltdef calpercent(data):#计算0和1占比cnt01=sum(data==0)+sum(data==1)return cnt01/data.size
data_Mete=pd.read_csv('./data/Mete_FR-Gri.csv')
data_VI=pd.read_csv('./data/VI_FR-Gri.csv')#M表的时间戳类型转为datetime
data_Mete['TIMESTAMP']=pd.to_datetime(data_Mete['TIMESTAMP'],format='%Y%m%d%H%M%S')
print(data_Mete['TIMESTAMP'])
data_VI['Date']=pd.to_datetime(data_VI['Date'],format='%Y/%m/%d')
print(data_VI['Date'])#M表添加一个Date列 只包含年月日 
data_Mete['Date']=[i.date() for i in data_Mete['TIMESTAMP']]
#根据Date分组 聚合到日
data_Mete_group=data_Mete.groupby(by='Date',as_index=False)
#对于每一个分组各列的多个值应用不同的方法
data1=data_Mete_group.agg({'TA':[np.max,np.min,np.mean],'P':np.sum,'RG':np.mean,'GPP':np.mean,'GPP_QC':calpercent})
print(data1)
#重置列名
data1.columns=['Date','TA_Max', 'TA_Min', 'TA_Mean', 'P', 'RG', 'GPP', 'GPP_QC']data1['Date']=pd.to_datetime(data1['Date'])
print(data1['Date'])
mergedata=pd.merge(data1,data_VI,on='Date')#两个表按照日期列合并mergedata.to_csv('./1test5_1.csv')
print('合并表格完成')def fixGppQc(data):#将GppQC值大于0.5的天数不足15天的月份的GppQC标为2 if sum(data>=0.5)<15:return 2else:return 1
#在(1)的基础上进行
data0=mergedata
#提取年月并将日均置为1 添加到新的一列
data0['newdate']=data0['Date'].map(lambda x: 10000*x.year + 100*x.month+1)
#TA_Range--气温日较差
data0['TA_Range']=data0['TA_Max']-data0['TA_Min']
#根据年月分组(日均为1)
data0group=data0.groupby(by='newdate',as_index=False)
data2=data0group.agg({'TA_Range':np.mean,'TA_Mean':np.mean,'P':np.sum,'RG':np.mean,'GPP':np.mean,'GPP_QC':fixGppQc,'EVI':np.mean,'NDVI':np.mean})
#将无效的GPP置为空值
data2.loc[data2['GPP_QC']==2,'GPP']=np.NaN
#修改列名
data2=data2.rename(columns={'newdate':'Date'})
data2['Date']=pd.to_datetime(data2['Date'],format='%Y%m%d')
# data2data3=data2.dropna()#剔除空值
# data3
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号plt.figure(figsize=(8,7.2))print('画出各个因素与光合作用的相关性柱状图')
cols=['TA_Mean','TA_Range','RG','P','NDVI']
corrs=[data3['GPP'].corr(data3[i]) for i in cols]#计算GPP与五列数据间的相关系数
index=np.arange(len(cols))for col,corr in zip(cols,corrs):#画出每个列与GPP相关系数的柱状图plt.bar(col,corr)plt.ylabel('与GPP的相关系数',fontsize=12)
plt.xlabel('与GPP的相关因素',fontsize=12)
plt.legend(['平均气温','气温日较差','太阳辐射','降水','NDVI'],loc=2)
plt.savefig('./test5_2.jpg')
plt.show()input('按回车结束')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

容器的那点事

当我们的后端服务器不够用的时候&#xff0c;我们可以通过容器技术&#xff0c;可以快速的把这些服务器全部虚拟出来&#xff0c; 当然这个虚拟跟虚拟机是不一样的&#xff0c;比虚拟机的方式快多了&#xff0c;早期阿里的淘宝平台如果整个坏掉了&#xff0c;重新搭建部署起来需…

lqb——修改数组

思路 **常规思路用哈希表的思想,设置bool数组标识是否被占用过,但是发生矛盾时将会造成查找需要遍历整个数组,比如,1,2,3……100000已连续占用,此时再插入1,将会一直遍历这100000个数,极端情况下,插入100000个1,将是n平方的复杂度。 如何快速查找到插入位置,这就引…

bp神经网络训练_数据分析模型6——神经网络基础(人工智能的底层模型)

未经许可请勿转载更多数据分析内容参看这里今天我们来学习人工智能的底层模型——神经网络&#xff08;NEURAL NETWORKS&#xff09;&#xff0c;现在比较热门的一个模型是深度学习&#xff0c;深度学习的基础也是神经网络&#xff0c;要学好深度学习&#xff0c;神经网络不了解…

四种最令人讨厌的编程语言:Java、Javascript、C++和Perl

喜欢就关注我们吧&#xff01;TIOBE 12 月榜单已于日前公布&#xff0c;在最新的排行榜中&#xff0c;C 语言仍高居榜首&#xff0c;其次分别是 Java、Python 和 C。在编程语言这一领域中&#xff0c;许多编程语言都会随着时间的推移而经历人气的激增&#xff0c;以及历史迭代之…

微软用的工具,统一财务三大表及高级分析通用模板

虽然罗叔并非财务专业&#xff0c;但大概了解一些财务常识。例如财务报表的三大报表以及一些常见分析等。本月《BI真经》视频课程即将就绪&#xff0c;后续罗叔将和大家开展更多的业务研究。我们知道&#xff0c;PowerBI 在绘制某些报告时候很难&#xff0c;初学者根本无法实现…

文件 单片机_如何查看你写的单片机程序有多大?

单片机我们都用过&#xff0c;我们知道单片机的FLASH有4K的&#xff0c;有8K的&#xff0c;单片机程序我们也写过&#xff0c;但是我们写好的程序有多大&#xff0c;你知道吗&#xff1f;程序写好并编译后生成hex文件&#xff0c;这个hex文件就是要下载到单片机里的文件&#x…

css less 不要作用到子对象_使用Less实现网站主题切换

v-easy-components change theme很多初学前端的开发同学一定有一种想法&#xff0c;就是如何更改网站的主题。前年&#xff08;2018&#xff09;&#xff0c;我也陷入了思考&#xff0c;如何切换网站主题呢&#xff1f;当时不知道less&#xff0c;只想到一种办法&#xff0c;就…

展望2021,Java、Go、.NET,谁主沉浮?

伴随着年底.NET社区活动&#xff0c;近日跟几位微软MVP大佬聊天请益&#xff0c;收获颇丰。程序员都有个话题避不开&#xff0c;就是各编程语言的优劣&#xff0c;大佬们的见识既有意思也有深度&#xff0c;这里为大家整理一下&#xff0c;其中Java、Golang和.NET是讨论焦点。J…

labuladong 的算法小抄_关于算法笔试的几个套路,一点就透

以下文章来源于labuladong &#xff0c;作者labuladong我知道各位是被标题吸引进来的&#xff0c;那就不废话&#xff0c;先说几个算法笔试的硬核套路&#xff0c;再说说语言选择和做题复习的策略。避实就虚大家也知道&#xff0c;大部分笔试题目都需要你自己来处理输入数据&am…

TVP两周年:携手同行,让未来可见

TVP两周年2018年12月15日&#xff0c;在北京的腾讯云社区开发者大会上&#xff0c;作为腾讯云构建开发者生态的重要战略&#xff0c;TVP计划正式发布。2020年12月15日&#xff0c;不知不觉&#xff0c;腾讯云TVP已经走过了两度春秋。从0到1的探索&#xff0c;1到10的成长&#…

加密封装 怎么把_不要再封装各种Util工具类了,这个神级框架值得拥有!

Hutool 谐音 “糊涂”&#xff0c;寓意追求 “万事都作糊涂观&#xff0c;无所谓失&#xff0c;无所谓得” 的境界。Hutool 是一个 Java 工具包&#xff0c;也只是一个工具包&#xff0c;它帮助我们简化每一行代码&#xff0c;减少每一个方法&#xff0c;让 Java 语言也可以 “…

Oh my God, Swagger API文档竟然可以这样写?

最好的总会在不经意间出现。“作为后端程序员&#xff0c;免不了与前端同事对接API&#xff0c; 一个书写良好的API设计文档可有效提高与前端对接的效率。为避免联调时来回撕逼&#xff0c;今天我们聊一聊正确编写Swaager API文档的姿势。基础Swagger用法在ConfigureServices配…

vue 前端设置允许跨域_web 前端的一些小问题

关于vue使用axios post发送json数据跨域请求403的解决方法&#xff1a;1. 问题vue开发的时候&#xff0c;使用axios跨域发送请求&#xff0c;同时post发送的数据格式是json格式&#xff0c;发送出去的时候发现控制台报错403&#xff0c;返回的信息提示是跨域的问题&#xff0c;…

如何在 Windows 10 上安装 WSL 2

翻译自 Joey Sneddon 2020年10月30日的文章《How to Install WSL 2 on Windows 10》 [1]如果您想在最新的 Windows 版本中尝试经过改进的 Windows 子系统 Linux 2 (即 WSL 2) [2]&#xff0c;要怎么做呢&#xff1f;我们在本文中介绍了安装它所需要做的所有事情。WSL 2 是微软早…

lnmp无法远程连接mysql_MySQL(一):设置root 可以远程连接MySQL

在mysql在远程主机或虚拟机上时&#xff0c;远程连接mysql数据库一般都使用GUI工具&#xff0c;比如Mac下的Sequel Pro&#xff1b;win和linux下的Sqlyog&#xff1b; 还有大名鼎鼎的Navicat。有人也许会说命令行多好&#xff0c;对着黑黑的屏幕噼里啪啦的一顿敲&#xff0c;屏…

云付认证已通过可以支付吗_海科融通丨刷新支付日常问题【附交易操作步奏】...

01常见问题汇总QPIN秘钥检验出错A&#xff1a;认证时不要频繁点击&#xff0c;点完后等一等系统反应&#xff0c;可联系客服处理。Q报错99&#xff0c;该小商户已入网A&#xff1a;提供商户编号给服务经理处理。Q终端屏幕无法签字A&#xff1a;待机界面&#xff0c;输入#0#&…

邀请函|WorkShop报名通道开启,来就送礼!

作为互联网行业的年度盛会今年除延续以往的开幕与论坛技术分享外还增设了Work Shop 体验课程&#xff01;参加此次工作坊不仅能近距离和大佬进行互动体验项目开发的快感还能领取大会纪念卫衣、书籍等惊喜好礼是不是很期待&#xff1f;&#xff08;数量有限先到场先得&#xff0…

对象数组参数_【JavaScript 教程】标准库—Array 对象

作者 | 阮一峰1、构造函数Array是 JavaScript 的原生对象&#xff0c;同时也是一个构造函数&#xff0c;可以用它生成新的数组。var arr new Array(2);arr.length // 2arr // [ empty x 2 ]上面代码中&#xff0c;Array构造函数的参数2&#xff0c;表示生成一个两个成员的数组…

机器学习之无监督学习——聚类

机器学习之无监督学习——聚类无监督学习一、基于划分的聚类方法1、基于划分的方法 简介A、概念B、分组C、分组与样本 对应关系D、硬聚类 与 软聚类二、基于层次的聚类方法1、基于层次的聚类方法 概念 :2、基于层次的聚类方法 :A、聚合层次聚类 ( 叶子节点到根节点 )聚合层次聚…

2020 . NET大会日程公布!行程亮点全曝光

|倒计时5天文末有福利答应我看到最后|2020年12月19日由.NET众多社区联合组织主办的2020年中国.NET开发者大会将于苏州盛大开幕时间&#xff1a;2020/12/19-12/20主题&#xff1a;开源、共享、创新地点&#xff1a;苏州人工智能产业园▽本次大会以“开源、共享、创新”为主题&am…