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

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

分组的关键词为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. CodeForces - 1183E Subsequences (easy version) (字符串bfs)

    The only difference between the easy and the hard versions is constraints. A subsequence is a string ...

  2. [Linux] 创建、删除用户

    系统:Ubuntu useradd:创建新用户或更新默认新用户信息 创建新用户 xxx,/home 目录没有同名文件夹,并且此用户没有 shell 权限 $ sudo useradd xxx 创建新用 ...

  3. Oracle虚拟机 与 windows配置

    目录 相关资料 安装虚拟机及相关配置 安装PLSQL Developer Navicat Premium登录数据库 踩坑之路 相关资料 oracle虚拟机配置 提取码:s3sg 安装虚拟机及相关配置 ...

  4. Nginx中文文档-安装 Nginx

    nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环 ...

  5. sql server management studio 连接时指定非默认端口 ,port

  6. linux查看文件的编码格式的方法 set fileencoding

    查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中 可以直接查看文件编码:set fileencoding即可显示文件编码格式.如果你只是想查看其它编码格式的文件或者想解决 用 ...

  7. Redis搭建集群

  8. Mat转CImage

    uchar *pImg=(uchar *)CI.GetBits();//得到CImage数据区地址 ps=img.ptr<uchar>(i); void MatToCImage( Mat ...

  9. HTML5Audio/Video全解(疑难杂症)

    1.mp4格式视频无法在chrome中播放 Chrome浏览器支持HTML5,它支持原生播放部分的MP4格式(不用通过Flash等插件).为 什么是部分MP4呢?MP4有非常复杂的含义(见http:/ ...

  10. delphi字符串分隔函数用法实例

    这篇文章主要介绍了delphi字符串分隔函数用法,通过自定义函数SeparateTerms2实现将字符串分割后存入字符串列表的功能,具有一定的实用价值,需要的朋友可以参考下 本文实例讲述了delphi ...