机器学习pandas之分组计算笔记
时间:2019-08-28
本文章向大家介绍机器学习pandas之分组计算笔记,主要包括机器学习pandas之分组计算笔记使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
分组计算三部曲:拆分-->应用-->合并
分组:就是按照行或列把相同索引的部分分到一起
分组的关键词为groupby,分组后我们就可以对每组数据进行同一操作,返回的是每组数据分别计算后的结果
1 import pandas as pd 2 import numpy as np 3 4 # 先创建一个DataFrame 5 df = pd.DataFrame({ 6 'key1':['a','a','b','b','a'], 7 'key2':['one','two','one','two','one'], 8 'data1':np.random.randint(1,10,5), 9 'data2':np.random.randint(1,10,5) 10 }) 11 12 df['data1'].groupby(df['key1']).mean() 13 # 对data1列采用key1列分组并求平均值,所谓分组,就是把相同的行或列分到一起 14 # 然后就可以分别对这些分好的组进行一系列操作 15 16 key = [1,2,1,1,2] # 也可以给出任意索引键,自定义分组 17 df['data1'].groupby(key).mean() # 这时就会把相同索引的值分到一起 18 19 df['data1'].groupby([df['key1'],df['key2']]).size() 20 mean = df.groupby(['key1','key2']).sum()['data1'] 21 # 也可进行再分组,可以先把key1先分组,在此基础上再以key2索引进行分组 22 # 输出的mean 23 key1 key2 24 a one 11 25 two 4 26 b one 1 27 two 9 28 Name: data1, dtype: int32 29 30 mean.unstack() # 这个方式可以转换为DataFrame 31 32 33 # 通过分组key1,将其创键为字典,可以很清晰看出分组的实际意义 34 dict(list(df.groupby('key1'))) 35 # 输出 36 {'a': key1 key2 data1 data2 37 0 a one 5 7 38 1 a two 4 4 39 4 a one 6 2, 'b': key1 key2 data1 data2 40 2 b one 1 3 41 3 b two 9 8} 42 43 # 以上是进行行分组,也可以进行列分组 44 df.groupby(df.dtypes, axis=1).sum() # axis=1表示按列分组 45 46 df.dtypes # 区分的是每列的数据类型 47 # 它的输出结果 48 key1 object 49 key2 object 50 data1 int32 51 data2 int32 52 dtype: object
原文地址:https://www.cnblogs.com/yang901112/p/11422448.html
- 今天的面试小记
- objective-C中的序列化(serialize)与反序列化(deserialize)
- 微信小程序 template 模板功能实现循环
- ASP.NET Web API 接口执行时间监控
- 这么多前端优化点你都记得住吗?
- 愚蠢的”记住“密码方式终于还是出了问题
- C#获取本机可用端口
- 想知道你的对象用微信和谁聊得最多吗?一个代码告诉你
- objective-C中的接口与泛型
- 段永朝:天性,互联网的灵性回归
- objective-C中的Class(类类型),Selector(选择器SEL),函数指针(IMP)
- 数据中心进水了怎么办?数据中心如何防洪?
- 戴若犁:虚拟中的现实
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- From High Ceph Latency to Kernel Patch with eBPF/BCC
- JConsole、VisualVM 依赖的 JMX 技术到底是什么
- DHCP 中继实验
- 【NBA 可视化】使用Pyecharts实现湖人19-20赛季投篮数据可视化~
- 微信小程序开发实战(18):地图组件
- 教你几招,快速创建 MySQL 五百万级数据,愉快的学习各种优化技巧
- 【Pyecharts】2014-2019年高考数据可视化~
- 25.Python的循环与递归
- 26.Python文件内容的迭代
- 28.Python中对象的特性
- 如何基于jackson动态序列化指定字段
- c/c++补完计划(五): 平衡二叉树和二叉搜索树
- 【原创】Java并发编程系列30 | ThreadLocal
- c/c++补完计划(六): 语法糖lambda
- 从别人的代码中学习golang系列--03