技术标签: pandas python 数据分析 Python Pandas
一、 groupby 依据某列分组; groupby 依据多列分组;
二、应用 mean sum count std median size max min等函数聚合数据;
三、transform 不改变数据形状(相当于计算后替换原来的每一个元素)
分组功能主要利用pandas的groupby函数。虽然分组功能用其他函数也可以完成,但是groupby函数是相对来说比较方便的。这个函数有很多神奇的功能,熟练后功能十分强大。groupby函数的官方参数说明如下:
import pandas as pd
import glob
# 获取该目录下的所有文件
files = glob.glob('../../data/03表格数据处理Pandas/C3.7 数据的分组与聚合/*')
# 利用 concat 将所有数据拼接成一个大的 df
df = pd.concat([pd.read_csv(f) for f in files])
# 删除列(值全为空);删除行(存在任意空值)
df = df.dropna(axis='columns', how='all').dropna(axis='index', how='any')
# 对 date 这一列进行格式转换
df['date'] = df.apply({
'date': lambda x: pd.to_datetime(x, format='%Y%m%d')})
# 获取到 月 和 天
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day
# 删除 date 列
df = df.drop(columns='date')
# 简单分组
# 分组后的数据想要查看,必须循环打印
group = df.groupby('type')
for i in group:
print(i)
# 获取某列元素等于特定值的数据
df[df['type']=='AQI']
# 多重分组
# 分组后的数据想要查看,必须循环打印
group = df.groupby(['type', 'month'])
for i in group:
print(i)
# 获取同时满足多个列条件的数据
df[(df['type']=='AQI') & (df['month']==1)]
所谓聚合就是在对数据进行合理分组后,再根据需要对数据进行的一列操作,比如求和、转换等。聚合函数通常是数据处理的最终目的,数据分组很多情况下也是为更好聚合来服务的。
# 对type列所有值等于AQI的数据进,行多重分组
group = df[df['type']=='AQI'].groupby(['hour', 'month'])
# 使用内置的方法,进行求平均值聚合,得到每个月每小事的平均值
group.mean()
# 对所有列数据应用相同函数的两个函数
group.agg([np.mean, np.std])
# 传入字典格式的数据
# 对不同列数据应用不同函数
group.agg({
'东四': [np.mean, np.std], '天坛': [np.min, np.max]})
使用transform函数对groupby对象进行变换,transform的计算结果和原始数据的形状保持一致
。
使用内置聚合函数或者agg会改变数据的形状,请对比上图中数据的行和列数。但是使用 transform 将不会改变数据的形状,相当于用算出来的值,替换原数据中的每一个值
。
import pandas as pd
import glob
import numpy as np
files = glob.glob('../../data/03表格数据处理Pandas/C3.7 数据的分组与聚合/*')
df = pd.concat([pd.read_csv(f) for f in files])
df = df.dropna(axis='columns', how='all').dropna(axis='index', how='any')
df['date'] = df.apply({
'date': lambda x: pd.to_datetime(x, format='%Y%m%d')})
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day
df = df.drop(columns='date')
aqi = df[df['type']=='AQI']
# 改变数据形状
aqi.groupby(['month']).agg(np.mean)
# 不改变数据形状 应用内置函数
aqi.groupby(['month']).transform(np.mean)
# 不改变数据形状 应用匿名函数
aqi.groupby(['hour', 'month']).transform(lambda x: x - x.mean())
--// 存储函数,自定义函数 ------------ 新建 CREATE FUNCTION function_name (参数列表) RETURNS 返回值类型 函数体 - 函数名,应该合法的标识符,并且不应该与已有的关键字冲突。 - 一个函数应该属于某个数据库,可以使用db_name.funciton_name的形式执行当前函数所属数据库,否则为...
教育-网络互联技术与实践-章节资料考试资料-苏州大学文正学院【】计算机网络互联设备随堂测验1、【单选题】网桥处理的是A、脉冲信号B、MAC 帧C、IP 包D、ATM 包参考资料【 】2、【单选题】交换机工作在 OSI 七层的哪一层A、一层B、二层C、三层D、三层以上参考资料【 】3、【单选题】在OSI的七层模型中集线器工作在哪一层A、物理层B、数据链路层C、网络层D、运输层参考资料【 】4、【单选题】以下哪个设备可以隔离广播A、HubB、
基础环境 阿里云ecs ubuntu16.04 (默认的nginx的版本是1.10,支持http2)1. 安装nginx apt-get install nginx 之后即可用ip地址或者域名进行访问2. 添加server.conf 在nginx.conf 里面有配置文件 include /etc/nginx/co
:输出日志信息,包含任务的布置情况 :自动指定设备布置任务 :设置可见设备,例如机器上有4个GPU,但设置只对一个GPU可见,则该进程无法访问其他设备 :获取所有物理设备(整块) :建立逻辑分区 :获取所有逻辑设备(分块) :设置内存自增长,需在程序开始的时候就被设置因此,本机有两块物理GPU先做一个默认gpu设置的实验,作为对照组。基础代码:容器内进行训练:默认情况下,此demo每步运行花费6ms。查看GPU占用情况:发现仅仅这一个进程就几乎占满GPU,对资源浪费十分严重。因此,进行
为什么80%的码农都做不了架构师?>>> ...
在本指南中,你将了解到服务器虚拟化、操作系统虚拟化、主机式虚拟化(hosted virtualization)和裸机虚拟化(bare-metal virtualization)的一些细节和它们的差异。还可以了解一下叫做混合虚拟化(Hybrid Virtualization)的新型虚拟技术,以及Microsoft的2008计划如何影响虚拟领域。VMware发布ESX已 经有七年了,虽然VMwar...
Chrome基于RIng-LWE问题的抗量子密钥交换算法,微软公布其开发基于RIng-LWE问题的密钥交换算法的源代码。(引入噪声,当所需的乘法数量较少时,接近实用化)每次加密IV都必须重新生成,IV的引入使得对同一明文使用相同的密钥进行加密,得到不同的密文。1976年Diffle和Hellman发表《密码学的新方向》,首次证明公钥密码是可能的,提出了一种密钥协商的创造性方法(基于离散对数求解的困难问题)如PRINCE、SIMON、SPECK,分组长度32,48,64,80,96bit,补充空白。
到新公司已经半年多了,对于产品的了解也逐渐加深。回想之前的时光,不得不承认我对于工作总是充满抵触。太过悠闲的生活让我对知识没有了追求。从今天开始,每天要分析一段suricata的源码。一个励志的故事。两座山一东一西,上面各住着一位道士。他们每天都要到山脚下打水,久而久之熟络了起来,打水时也会不断攀谈。几年后的一天,西山的道士发现东山的道士没有来打水。起初他也没觉得有什么问题,可连续过了几天
1.下载Anaconda地址:https://www.anaconda.com/download/#linux2.安装进入安装包所在目录,执行命令:$ bash Anaconda3-5.0.1-Linux-x86_64.sh一路回车,到下图位置,回复yes这里写图片描述然后输入安装位置,根据自己需求然后输入yes再执行命令让.bashrc中添加的路径生...
本文简单介绍了mysql的可视化工具mysql workbench的安装及简单操作
acos是一个函数,其功能是求反余弦。acos(-1.0)就是求-1.0的反余弦,再赋值给double类型的常变量pi
http://www.cnblogs.com/dirichlet/archive/2011/03/16/1986251.html临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。本文深入研究临界区的原理,以揭示在查找死锁和确