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

pandas时间处理、分组聚合 import pandas as pd import numpy as np data=pd.read_excel(r'meal_order_detail.xlsx') print(data.shape) (2779, 19) print(data.columns) Index(['detail_id', 'order_id', 'dishes_id', 'logicprn_name', 'parent_class_name', 'dishes_name', 'itemis_add', 阅读详情

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 plt

def 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 plt

def 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 2
    else:
        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')
# data2

data3=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('按回车结束')



Python数据科学入门:NumPy、Pandas和Matplotlib的实用指南 NumPyPandas和Matplotlib。这些库为数据分析、科学计算和数据可视化提供了强大的功能,使得数据科学工作更加高效和便捷。NumPy:用于高效的数值计算和数组操作。Pandas:用于数据处理和分析,特别适合结构化数据。Matplotlib:用于生成各类图表和可视化数据。通过掌握这些工具,您将能够更好地处理和分析数据,并通过可视化来呈现结果。随着您的深入学习,您将能够处理更复杂的任务,进行更精细的数据分析,推动数据科学技能的提升。 阅读详情

相关推荐

Python 魔法棒:数据科学、AI 与自动化的奇幻之旅

Python 魔法棒:数据科学、AI 与自动化的奇幻之旅》展示了 Python 在现代技术世界中的无穷魔力。凭借其简洁、强大的语法,Python 已经成为数据科学、人工智能、自动化等多个领域的核心工具,深刻改变了我们对编程的理解和应用。通过 Python,你不仅可以迅速分析和可视化数据,训练智能算法,处理自然语言,还能轻松实现各类自动化任务。它让技术变得更具可操作性,也让开发者能够快速实现创新与突破。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1360

【Python】【DataFrame】如何按照日期列统计数据列(按照日期或者按照年月)

DataFrame按照日期列统计数据列(按照日期或者按照年月)

Good_Hope的博客 4515

Python数据科学入门(NumPy & Pandas)【python基础篇】

本文介绍了Python数据科学中NumPy和Pandas两大核心库的基础知识。NumPy提供了高效的多维数组操作和数学函数,包括数组创建、索引切片、形状操作、数学运算和聚合函数等核心功能。Pandas则构建了更高级的数据结构(Series和DataFrame),支持数据清洗、转换、分组聚合和时间序列处理等操作。文章详细讲解了这两个库的基本使用方法,从数组创建到高级数据分析技术,为Python数据科学入门提供了全面的基础指导。

博客 2336

Python的格式化输出----%用法和format用法

%用法 实现格式化 1、整数的输出  %o —— oct 八进制 %d —— dec 十进制 %x —— hex 十六进制 1 &gt;&gt;&gt; print('%o' % 20) 2 24 3 &gt;&gt;&gt; print('%d' % 20) 4 20 5 &gt;&gt;&gt; print('%x' % 20) 6 14   2、浮点数输出  %f —...

py_1995的博客 1万+

Python数据科学核心:numpy与pandas实战指南

在数据科学领域,Python已成为主导语言之一,这在很大程度上归功于它强大的科学计算库——NumPy和Pandas。它们提供了数据处理、分析和模型构建的基础工具,是进行数据科学工作不可或缺的组件。无论是进行数据探索、特征工程、还是构建机器学习模型,NumPy和Pandas都能提供高效的数据处理和数学运算支持。在下一章,我们将深入了解NumPy的ndarray对象及其在数据科学中的数学运算功能,开始我们的数据科学之旅。项目流程包括需求分析、数据准备、特征工程、模型选择、训练与评估、部署上线等步骤。

weixin_35995661的博客 570

python+pandas+时间、日期以及时间序列处理方法

今天小编就为大家分享一篇python+pandas+时间、日期以及时间序列处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

pandas中to_datetime()时间处理

pandas.to_datetime(arg,errors =‘raise’,utc = None,format = None,unit = None ) pandas通常用于处理成组日期,不管这些日期是DataFrame的轴索引还是列,to_datetime方法可以解析多种不同的日期表示形式。 (1)获取指定的时间和日期 例如: df[’'date]数据类型为“object”,通过pd.to_datetime将该列数据转换为时间类型,即datetime。 df[‘date_formatted’]=pd.t

mz02230909mz的博客 1万+

别再手动巡检了!vRealize Operations Manager 8.x 自动化报告配置全攻略(附模板下载)

本文详细介绍了如何利用vRealize Operations Manager 8.x实现自动化巡检报告配置,大幅提升虚拟化运维效率。通过模板定制、智能调度和自动分发等功能,帮助运维团队告别手动生成报告的繁琐工作,实现90%以上的时间节省。文章还提供了实用的配置技巧和最佳实践,助力企业构建高效的自动化报告系统。

weixin_33806859的博客 298

Python基础学习—Pandas数据分析实战剖析

Python基础学习—Pandas数据分析实战剖析 我们选用的数据集是关于电商销售的记录,包含了商品、销售额、日期等信息。数据集的目标是通过分析这些数据,洞察销售趋势、热门商品以及销售额的波动。

一键难忘的博客 8638

win11系统ping另一台电脑上VMware虚拟机的IP

我是用了两台电脑,所以刚才遇到一个问题就是两台电脑的IP 在同一局域网内ping不通。于是就找了很多资料,经过坚强的绝望后终于解决了。 下开始解决问题: VMWare提供了三种工作模式:bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。 1. bridged(桥接模式)   在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚

qq_42817360的博客 3239

[前沿技术] AMD FSR 1.0源码解析:EASU算法实现细节与优化策略

本文深入解析了AMD FSR 1.0技术的核心——EASU(边缘自适应空间升频)算法。通过剖析其源码,详细阐述了EASU如何利用12-tap采样窗口、基于Lanczos滤波器的多项式近似以及自适应的边缘检测机制,在无需AI模型的情况下实现高质量图像放大。文章重点揭示了其极致的GPU优化策略,包括寄存器利用、采样优化和避免动态分支,为理解高性能图形算法提供了绝佳范例。

docker7nomad的博客 540

python数据分析中pandas统计分析基础之DataFrame的使用操作

pandas是一个开源的数据分析库,提供了丰富强大的数据结构和数据分析工具,其中最常用的数据结构是DataFrame。DataFrame是一个二维的数据结构,类似于电子表格或SQL表,每列可以是不同的数据类型。通过pandas的DataFrame,我们可以轻松地加载、处理、分析和操作数据。DataFrame的基本操作包括:通过pandas提供的这些功能,我们可以方便地进行各种数据分析任务,如数据清洗、数据整合、数据探索等。在数据科学与数据分析领域,高效处理和分析数据是获取洞察、驱动决策的核心。而DataFr

w123_8889的博客 1161

携程酒店数据爬取进阶:动态接口破解与反反爬策略实战

本文详细解析了携程酒店数据爬取的进阶技巧,包括动态接口参数破解、反爬虫策略对抗及企业级采集方案实现。重点介绍了eleven参数的生成逻辑、动态Cookie维护方法,以及如何应对携程的请求指纹检测和行为模式识别。通过实战案例,帮助开发者高效获取酒店价格数据,同时遵守行业规范。

eee77的博客 1081

终极数据科学双语言指南:Python与R实战手册

数据科学已成为当今最具前景的领域之一,而掌握Python与R这两大编程语言是踏入该领域的关键。本指南将为你揭示如何利用这两种工具的优势,轻松应对从数据处理到机器学习的全流程挑战,成为一名真正的全能数据科学家。 ## 📊 数据科学双语言优势解析 在数据科学领域,Python与R各有所长。Python以其简洁的语法和强大的生态系统成为通用编程语言的首选,而R则在统计分析和数据可视化方面表现卓越。

gitblog_01181的博客 550

PCA9698嵌入式C++驱动库:高性能I²C GPIO扩展方案

GPIO扩展是嵌入式系统中解决MCU引脚资源不足的关键技术,其核心原理在于通过串行总线(如I²C)桥接主控与外设寄存器,实现逻辑引脚到物理IO的映射与状态同步。技术价值体现在低开销、高确定性与多设备可扩展性,广泛应用于工业控制、传感器节点和LED矩阵驱动等实时场景。本文聚焦PCA9698——一款支持24通道双向IO、中断输出与可编程驱动模式的I²C GPIO扩展芯片,结合其C++驱动库的影子寄存器机制、端口级原子操作及非阻塞同步设计,提供面向资源受限平台(如ATmega2560)的工程就绪方案。

weixin_35756637的博客 628

超融合架构实战:如何用3节点搭建企业级分布式存储系统?

本文详细介绍了如何利用3节点搭建企业级分布式存储系统的超融合架构实战指南。从硬件选型、网络配置到存储策略调优,提供了全面的实操建议和性能优化技巧,帮助企业实现高效、弹性的IT基础设施。特别适合需要简化运维、提升存储性能的中型企业参考。

weixin_29200485的博客 326

【Python】Pandas基础操作手册(上)

Pandas 是一个开源的 Python 数据分析库,主要用于数据操作和数据分析。它提供了高效、灵活的数据结构和函数,使得数据处理变得更加便捷。

保护小周ღ的博客 3394

OpenClaw(Clawdbot/Moltbot)如何正确的配置浏览器,实现对浏览器的自动化操作功能(浏览器状态为running:false怎么办)

OpenClaw(Clawdbot/Moltbot)浏览器自动化功能无效?🤖 本文详细介绍如何解决这个问题🔧,让你的OpenClaw(Clawdbot/Moltbot)真正具备"睁眼看世界"的能力,支持网页搜索、点击操作和截图等功能 ✅

XiaoqiangClub的博客 8110

Pandas基础介绍

Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。Pandas官网地址Pandas文档。

W_chuanqi的博客 1268

Windows服务器环境下 OpenCode Skill 下载与运行全流程实战指南(小白版)

Windows服务器环境下 OpenCode Skill 下载与运行全流程实战指南(小白版),OpenCode技能安装与使用指南,分为四个步骤:1)准备Windows服务器环境并确认OpenCode可用;2)通过Git或直接下载方式获取Skill;3)配置技能路径至.opencode/config.json;4)运行测试技能。关键点包括路径配置必须使用双反斜杠、确保Python环境正确安装、管理员权限运行等。文中提供了文本总结技能的完整案例,从创建skill.yaml和main.py到注册运行的全流程,并针

专注于编程、AI、人工智能等多个领域内容研究和分析 1083

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python在数据科学领域的高阶应用:探索Pandas与Scikit-learn的力量

通过上述案例,我们可以看到Pandas和Scikit-learn在数据科学项目中的强大作用。Pandas负责数据的清洗、转换和初步分析,为机器学习模型的构建提供高质量的数据集;而Scikit-learn则提供了丰富的算法库,帮助数据科学家快速实现模型的训练和评估。两者相辅相成,极大地简化了数据科学工作的流程,提高了工作效率。

运维人生 987

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python数据科学实战:NumPy、Pandas、Matplotlib完整入门指南

你是否曾面对海量数据感到无从下手?是否想用Python进行数据分析却不知从何开始?本文将带你从零开始,掌握Python数据科学的三大核心库——NumPy、Pandas和Matplotlib,通过实际案例让你快速上手解决真实业务问题。无论你是数据分析师、科研人员还是编程爱好者,这套工具组合都将成为你处理数据的得力助手。 ## 📊 从业务问题出发:为什么需要这三大库? 想象一下,你是一家电商公司

gitblog_00320的博客 738

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python在数据科学中的核心工具Pandas、NumPy与Matplotlib实战指南

随后,数据清洗成为关键,包括处理缺失值(`df.dropna()`, `df.fillna()`)、去重(`df.drop_duplicates()`)和数据类型转换。此外,散点图(`plt.scatter()`)用于观察变量间关系,柱状图(`plt.bar()`)用于比较类别数据,直方图(`plt.hist()`)用于展示数据分布,箱线图(`plt.boxplot()`)用于识别异常值和分布形态。合并多个数据集(`pd.merge()`, `pd.concat()`)也是常见任务。

juyuesf的专栏 861

【学习经典】python 数据聚合与分组运算(part 1)

对数据集进行分组并对各组应用一个函数(无论是聚合还是转换),通常是数据分析工作中的重要环节。在将数据集加载、融合、准备好之后,通常就是计算分组统计或生成透视表。pandas提供了一个灵活高效的gruopby功能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。 关系型数据库和SQL(Structured Query Language,结构化查询语言)能够如此流行的原因之一就是其能够方便...

浮点型队友 6903

使用 Pandas 进行数据聚合与操作:从合并到可视化的全面指南

Pandas数据处理与可视化技术摘要 Pandas作为Python核心数据分析库,提供了强大的数据处理功能。本文介绍了其关键技术应用:通过pd.merge()实现多源数据关联,支持各种连接方式;基于布尔条件的高效数据筛选方法;利用向量化运算创建新数据列;结合Matplotlib的可视化功能。这些技术构成了从数据清洗、转换到分析展示的完整工作流,显著提升数据分析效率,为业务决策提供可靠支持。150字

静水深流 780
上一篇: 数据科学与python语言——Matplotlib数据可视化基础
下一篇: 数据科学与python——Pandas统计分析基础(数据堆叠+数据清洗)
943802606
博客等级 码龄6年 1万+粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值