AGG

不再纠结,一文详解pandas中的map、apply、applymap、groupby、agg...

↘锁芯ラ 提交于 2020-12-06 18:13:43
点击 蓝字 关注我,有干货领取! 文章的数据和代码都已上传至我的github仓库:https://github.com/CNFeffery/DataScienceStudyNotes 一、简介 pandas提供了很多方便简洁的方法,用于对单列、多列数据进行批量运算或分组聚合运算,熟悉这些方法后可极大地提升数据分析的效率,也会使得你的代码更加地优雅简洁。 本文就将针对pandas中的 map() 、 apply() 、 applymap() 、 groupby() 、 agg() 等方法展开详细介绍,并结合实际例子帮助大家更好地理解它们的使用技巧。 二、非聚合类方法 这里的非聚合指的是数据处理前后没有进行分组操作,数据列的长度没有发生改变,因此本章节中不涉及 groupby() 。 首先读入数据,这里使用到的全美婴儿姓名数据,包含了1880-2018年全美每年对应每个姓名的新生儿数据,在jupyterlab中读入数据并打印数据集的一些基本信息以了解我们的数据集: import pandas as pd #读入数据 data = pd.read_csv( 'data.csv' ) data.head() #查看各列数据类型、数据框行列数 print(data.dtypes) print() print(data.shape) 2.1 map() 类似Python内建的 map() 方法

简单理解 .agg() 和 .apply() 方法在 groupby()方法中的运用

元气小坏坏 提交于 2020-12-06 16:33:05
在 .groupby() 后面,可以跟 .agg() 和 .apply() 参数。这两个参数的功能比较神奇,但用法却有点不一样。 1. 先构造一个DataFrame import pandas as pd df = pd.DataFrame({"年份":["2020","2019","2020","2020","2019","2019"], "商品":["苹果", "西瓜", "荔枝", "龙眼", "菠萝", "菠萝"], "销售额":[100,200,300,400,500,600]}) df 2. 观察 .agg()做出来的结果 df.groupby(["年份"]).agg(lambda x :print(x)) 3. 用 .apply() 做出来的结果 df.groupby(["年份"]).apply(lambda x : print(x)) 不难看出, .apply() 处理的对象是一个个的类如DataFrame的数据表,然而 .agg() 则每次只传入一列。 4. 再看下 .agg() 的其它用法 df.groupby(["年份"]).agg(["sum", "mean", "max", "min"]) 小结:可见,.agg() 和 .apply() 用法值得好好琢磨。 来源: oschina 链接: https://my.oschina.net/u/3750423

谷粒商城学习笔记,第八天:缓存SpringCache+商品检索模型

99封情书 提交于 2020-11-18 17:46:16
谷粒商城学习笔记,第八天:缓存SpringCache+商品检索模型 一、SpringCache SpringCache文档地址 SpringCache本质上不是一个具体的缓存实现方案(比如EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中加入少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果。 SpringCache定义了Cache和CacheManager接口来统一不同的缓存技术,并支持JCache注解来简化我们的开发。 ##Cache接口 cache接口为缓存的组件规范定义,包含缓存的各种操作集合。 cache接口下提供了xxxCache的实现:如RedisCache、EhCacheCache、ConcurrentMapCache等 常用注解: @EnableCaching:开启缓存功能 @Cacheable:将数据保存到缓存 @CachePut:不影响方法执行更新缓存 @CacheEvict:将数据从缓存中删除 @Caching:组合以上多个操作:cacheable+cacheput+cacheEvict @CacheConfig:在class类级别,共享缓存配置 1、整合 springcache+redis 引入依赖: <!--springcache--> <dependency> <groupId>org

python操作dataFrame

老子叫甜甜 提交于 2020-10-29 02:31:33
python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数。 1)查看DataFrame数据及属性 df_obj = DataFrame() #创建DataFrame对象 df_obj.dtypes #查看各行的数据格式 df_obj[ '列名'].astype( int )#转换某列的数据类型 df_obj.head() #查看前几行的数据,默认前5行 df_obj.tail() #查看后几行的数据,默认后5行 df_obj.index #查看索引 df_obj.columns #查看列名 df_obj.values #查看数据值 df_obj.describe() #描述性统计 df_obj.T #转置 df_obj.sort_values(by =['',''])#同上 2)使用DataFrame选择数据: df_obj.ix[1:3] #获取1- 3行的数据,该操作叫切片操作,获取行数据 df_obj.ix[columns_index] #获取列的数据 df_obj.ix[ 1:3,[1,3]]#获取1列3列的1~ 3行数据 df_obj[columns].drop_duplicates() #剔除重复行数据 3)使用DataFrame重置数据: df_obj.ix

GIS跨平台绘图

一曲冷凌霜 提交于 2020-10-14 19:34:01
agg http://antigrain.com/ cario (推荐这个) https://www.cairographics.org/ GeographicLib(GEO相关的转换类库) https://www.cairographics.org/ 等值线跟踪算法 http://www.imageprocessingplace.com/downloads_V3/root_downloads/tutorials/contour_tracing_Abeer_George_Ghuneim/index.html http://www.imageprocessingplace.com 是一个关于图形相关的网站 来源: oschina 链接: https://my.oschina.net/u/53041/blog/4503394

基于flink和drools的实时日志处理

橙三吉。 提交于 2020-10-14 01:01:25
1、背景 日志系统接入的日志种类多、格式复杂多样,主流的有以下几种日志: filebeat采集到的文本日志,格式多样 winbeat采集到的操作系统日志 设备上报到logstash的syslog日志 接入到kafka的业务日志 以上通过各种渠道接入的日志,存在2个主要的问题: 格式不统一、不规范、标准化不够 如何从各类日志中提取出用户关心的指标,挖掘更多的业务价值 为了解决上面2个问题,我们基于flink和drools规则引擎做了实时的日志处理服务。 2、系统架构 架构比较简单,架构图如下: 各类日志都是通过kafka汇总,做日志中转。 flink消费kafka的数据,同时通过API调用拉取drools规则引擎,对日志做解析处理后,将解析后的数据存储到Elasticsearch中,用于日志的搜索和分析等业务。 为了监控日志解析的实时状态,flink会将日志处理的统计数据,如每分钟处理的日志量,每种日志从各个机器IP来的日志量写到Redis中,用于监控统计。 3、模块介绍 系统项目命名为eagle。 eagle-api:基于springboot,作为drools规则引擎的写入和读取API服务。 eagle-common:通用类模块。 eagle-log:基于flink的日志处理服务。 重点讲一下eagle-log: 对接kafka、ES和Redis 对接kafka和ES都比较简单

Datawhale数据分析课程第二章

一世执手 提交于 2020-09-26 02:19:55
Datawhale数据分析课程第二章 准备工作 数据清洗及特征处理 相关定义 缺失值观察与处理 任务一:缺失值观察 (1) 请查看每个特征缺失值个数 (2) 请查看Age, Cabin, Embarked列的数据 以上方式都有多种方式,所以大家多多益善 任务二:对缺失值进行处理 (1)处理缺失值一般有几种思路 (2) 请尝试对Age列的数据的缺失值进行处理 (3) 请尝试使用不同的方法直接对整张表的缺失值进行处理 重复值观察与处理 任务一:请查看数据中的重复值 任务二:对重复值进行处理 (1)重复值有哪些处理方式呢? (2)处理我们数据的重复值 任务三:将前面清洗的数据保存为csv格式 特征观察与处理 任务一:对年龄进行分箱(离散化)处理 (1) 分箱操作是什么? (2) 将连续变量Age平均分箱成5个年龄段,并分别用类别变量12345表示 (3) 将连续变量Age划分为[0,5) [5,15) [15,30) [30,50) [50,80)五个年龄段,并分别用类别变量12345表示 (4) 将连续变量Age按10% 30% 50 70% 90%五个年龄段,并用分类变量12345表示 (5) 将上面的获得的数据分别进行保存,保存为csv格式 任务二:对文本变量进行转换 (1) 查看文本变量名及种类 (2) 将文本变量Sex, Cabin ,Embarked用数值变量12345表示

5,Dvops python(python数据类型常用方法函数汇总)

旧时模样 提交于 2020-08-19 09:46:58
1,字符串常用方法 方法名 描述 备注 str.capitalize() 把首字符转换为大写。 Text str.casefold() 把字符串转换为小写。 Text str.center() 返回居中的字符串。 Text str.count() 返回指定值在字符串中出现的次数。 Text str.encode() 返回字符串的编码版本。 Text str.endswith() 如果字符串以指定值结尾,则返回 true。 Text str.find() 在字符串中搜索指定的值并返回它被找到的位置。 Text str.format() 格式化字符串中的指定值。 Text str.index() 在字符串中搜索指定的值并返回它被找到的位置 Text str.isalnum() 如果字符串中的所有字符都是字母数字,则返回 True。 Text str.isdigit() 如果字符串中的所有字符都是数字,则返回 True。 Text "拼接符".join() 把可迭代对象的元素连接到字符串的末尾。 Text str.lower() 把字符串转换为小写。 Text str.ljust() 返回字符串的左对齐版本 Text str.lstrip() 删除两边的空格 Text str.partition() 返回元组,其中的字符串被分为三部分。 Text str.ljust()

spark | 手把手教你用spark进行数据预处理

拥有回忆 提交于 2020-08-18 20:48:36
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 过滤去重 在机器学习和数据分析当中,对于数据的了解和熟悉都是最基础的。所谓巧妇难为无米之炊,如果说把用数据构建一个模型或者是支撑一个复杂的上层业务比喻成做饭的话。那么数据并不是“米”,充其量最多只能算是未脱壳的稻。要想把它做成好吃的料理,必须要对原生的稻谷进行处理。 但是处理也并不能乱处理,很多人做数据处理就是闷头一套三板斧。去空值、标准化还有one-hot,这一套流程非常熟悉。以至于在做的时候都不会想,做这些处理的意义是什么。我们做数据处理也是有的放矢的,针对不同的情况采取不同的策略。所以说到这里,你应该已经明白了,首要任务还是需要先对数据有个基本的了解,做到心中有数。 那么怎么做到心中有数呢?我们先来看一个具体的例子,假设现在我们有了这么一批数据: df = spark.createDataFrame([ (1, 144.5, 5.9, 33, 'M'), (2, 167.2, 5.4, 45, 'M'), (3, 124.1, 5.2, 23, 'F'), (4, 144.5, 5.9, 33, 'M'), (5, 133.2, 5.7, 54, 'F'), (3, 124.1, 5.2, 23, 'F'), (5, 129.2, 5.3, 42, 'M'), ], [

spark | 手把手教你用spark进行数据预处理

人走茶凉 提交于 2020-08-13 03:04:16
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是 spark专题 的第七篇文章,我们一起看看spark的数据分析和处理。 过滤去重 在机器学习和数据分析当中,对于数据的了解和熟悉都是最基础的。所谓巧妇难为无米之炊,如果说把用数据构建一个模型或者是支撑一个复杂的上层业务比喻成做饭的话。那么数据并不是“米”,充其量最多只能算是未脱壳的稻。要想把它做成好吃的料理,必须要对原生的稻谷进行处理。 但是处理也并不能乱处理,很多人做数据处理就是闷头一套三板斧。 去空值、标准化还有one-hot ,这一套流程非常熟悉。以至于在做的时候都不会想,做这些处理的意义是什么。我们做数据处理也是有的放矢的,针对不同的情况采取不同的策略。所以说到这里,你应该已经明白了,首要任务还是需要先对数据有个基本的了解, 做到心中有数 。 那么怎么做到心中有数呢?我们先来看一个具体的例子,假设现在我们有了这么一批数据: df = spark.createDataFrame([ ( 1 , 144.5 , 5.9 , 33 , 'M' ), ( 2 , 167.2 , 5.4 , 45 , 'M' ), ( 3 , 124.1 , 5.2 , 23 , 'F' ), ( 4 , 144.5 , 5.9 , 33 , 'M' ), ( 5 , 133.2 , 5.7 , 54 , 'F' ), ( 3