分组计算三部曲:拆分-->应用-->合并

分组:就是按照行或列把相同索引的部分分到一起

分组的关键词为groupby,分组后我们就可以对每组数据进行同一操作,返回的是每组数据分别计算后的结果

 import pandas as pd
import numpy as np # 先创建一个DataFrame
df = pd.DataFrame({
'key1':['a','a','b','b','a'],
'key2':['one','two','one','two','one'],
'data1':np.random.randint(1,10,5),
'data2':np.random.randint(1,10,5)
}) df['data1'].groupby(df['key1']).mean()
# 对data1列采用key1列分组并求平均值,所谓分组,就是把相同的行或列分到一起
# 然后就可以分别对这些分好的组进行一系列操作 key = [1,2,1,1,2] # 也可以给出任意索引键,自定义分组
df['data1'].groupby(key).mean() # 这时就会把相同索引的值分到一起 df['data1'].groupby([df['key1'],df['key2']]).size()
mean = df.groupby(['key1','key2']).sum()['data1']
# 也可进行再分组,可以先把key1先分组,在此基础上再以key2索引进行分组
# 输出的mean
key1 key2
a one 11
two 4
b one 1
two 9
Name: data1, dtype: int32 mean.unstack() # 这个方式可以转换为DataFrame # 通过分组key1,将其创键为字典,可以很清晰看出分组的实际意义
dict(list(df.groupby('key1')))
# 输出
{'a': key1 key2 data1 data2
0 a one 5 7
1 a two 4 4
4 a one 6 2, 'b': key1 key2 data1 data2
2 b one 1 3
3 b two 9 8} # 以上是进行行分组,也可以进行列分组
df.groupby(df.dtypes, axis=1).sum() # axis=1表示按列分组 df.dtypes # 区分的是每列的数据类型
# 它的输出结果
key1 object
key2 object
data1 int32
data2 int32
dtype: object

pandas之分组计算笔记的更多相关文章

  1. python库学习笔记——分组计算利器:pandas中的groupby技术

    最近处理数据需要分组计算,又用到了groupby函数,温故而知新. 分组运算的第一阶段,pandas 对象(无论是 Series.DataFrame 还是其他的)中的数据会根据你所提供的一个或多个键被 ...

  2. Pandas:表计算与数据分析

    目录 Pandas之Series Pandas之DataFrame 一.pandas简单介绍 1.pandas是一个强大的Python数据分析的工具包.2.pandas是基于NumPy构建的. 3.p ...

  3. devexpress表格gridcontrol实现分组,并根据分组计算总计及平均值

    1.devexpress表格控件gridcontrol提供了强大的分组功能,你几乎不用写什么代码就可以实现一个分组功能,并且可根据分组计算总计和平均值.这里我例举了一个实现根据班级分组计算班级总人数, ...

  4. R 分组计算描述性统计量

    统计学区内各个小区的房价均值 数据格式 id|community_name|house_area|house_structure|house_total|house_avg|agency_name|h ...

  5. 动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题

    动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题 D3 ...

  6. spark 例子groupByKey分组计算2

    spark 例子groupByKey分组计算2 例子描述: 大概意思为,统计用户使用app的次数排名 原始数据: 000041b232,张三,FC:1A:11:5C:58:34,F8:E7:1E:1E ...

  7. spark 例子groupByKey分组计算

    spark 例子groupByKey分组计算 例子描述: [分组.计算] 主要为两部分,将同类的数据分组归纳到一起,并将分组后的数据进行简单数学计算. 难点在于怎么去理解groupBy和groupBy ...

  8. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  9. pandas库的学习笔记

    Environment pandas 0.21.0 python 3.6 jupyter notebook 开始 习惯上,我们导入如下: import pandas as pd import nump ...

随机推荐

  1. 国内Archlinux arm的镜像源

    清华 http://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/arch/arch/repo 中科大 http://mirrors.ustc.edu.cn/ar ...

  2. nginx location rewrite 禁止访问某个目录

    Location 指令,是用来为匹配的 URI 进行配置 http://www.baidu.com/test/index.php?a=1&b=ture   这里面/test/index.php ...

  3. Cesium中的坐标系及转换

    在我们开始学习Entity之前,我们首先需要先学习下Cesium中的坐标系,Cesium中有多个坐标系,在进行添加Entity时经常会使用到. 一.坐标系介绍 我们先来列举下Cesium中的坐标系:W ...

  4. TynSerial类介绍

    TynSerial类介绍 TynSerial是咏南中间件封装的,支持数据二进制序列(还原)的类. 支持WINDOWS.LINUX.MAC.IOS.ANDROID. 支持D6及以上版本. 支持TCP/H ...

  5. Qt编写控件属性设计器5-属性中文

    一.前言 在上一篇文章中就提到过,使用qtpropertybrowser来加载属性,对应加载到的属性是英文的,也就是控件类中Q_PROPERTY描述的变量名称,如何变成中文或者其他语言显示呢?这个就需 ...

  6. Kubernetes简介二

    Kubernetes是什么?Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署.自动扩缩容.维护等功能.通过Kubernetes你可以: 快速部署应用 快速扩展应用 ...

  7. Swift学习 (三)

    3.函数: 在Swift中函数的定义基本与OC一样. 主要区别为: 通过func关键词定义函数 返回值在->关键词后标注 各举一个类方法与实例方法例子. 1 2 + (UIColor*)blac ...

  8. laravel构建联合查询

    参考:http://laravelacademy.org/post/126.html DB门面可以指定不同的数据库连接(通过connection方法) /** * @param $login_uid ...

  9. Windows VS2017 编译 libssh2 1.7.0(执行命令、文件上传、下载)

    下载安装 OpenSSL 要编译 libssh2,必须先编译好 OpenSSL 的静态库,直接从 http://slproweb.com/products/Win32OpenSSL.html 下载已经 ...

  10. iOS-app清除缓存

    一直寻寻觅觅找app的清除缓存的方法,发现:并没有什么固定的方法,你既然有做对应的缓存机制,这个机制就应该有清除缓存的方法.例如如果你使用某个第三方的图片库,这个库有缓存机制,那么它就应该提供对应的清 ...