pandas数据预处理之dataframe的groupby操作方法


Posted in Python onApril 13, 2018

在数据预处理过程中可能会遇到这样的问题,如下图:数据中某一个key有多组数据,如何分别对每个key进行相同的运算?

pandas数据预处理之dataframe的groupby操作方法

dataframe里面给出了一个group by的一个操作,对于”group by”操作,我们通常是指以下一个或多个操作步骤:

l (Splitting)按照一些规则将数据分为不同的组;

l (Applying)对于每组数据分别执行一个函数;

l (Combining)将结果组合到一个数据结构中;

使用dataframe实现groupby的用法:

# -*- coding: UTF-8 -*-
import pandas as pd
df = pd.DataFrame([{'col1':'a', 'col2':1, 'col3':'aa'}, {'col1':'b', 'col2':2, 'col3':'bb'}, {'col1':'c', 'col2':3, 'col3':'cc'}, {'col1':'a', 'col2':44, 'col3':'aa'}])
print df
# 按col1分组并按col2求和
print df.groupby(by='col1').agg({'col2':sum}).reset_index()
# 按col1分组并按col2求最值
print df.groupby(by='col1').agg({'col2':['max', 'min']}).reset_index()
# 按col1 ,col3分组并按col2求和
print df.groupby(by=['col1', 'col3']).agg({'col2':sum}).reset_index()

输出结果为:

col1 col2 col3 
0  a   1  aa 
1  b   2  bb 
2  c   3  cc 
3  a  44  aa
col1 col2 
0  a  45 
1  b   2 
2  c   3
col1 col2   
    max min 
0  a  44  1 
1  b  2  2 
2  c  3  3
col1 col3 col2 
0  a  aa  45 
1  b  bb   2 
2  c  cc   3

注意点:

代码中调用了reset_index() 函数, 如果不使用这个函数输出的结果将是:

col2
col1   
a    45
b    2
c    3
   col2  
   max min
col1     
a   44  1
b    2  2
c    3  3
      col2
col1 col3   
a  aa   45
b  bb    2
c  cc    3

上下两个结果还是有区别的,但是具体区别暂时不太清楚,不过下面的一种输出结果是不能跟使用df['col1']来提取第一列的。至于是什么原因暂时还不清楚,如果您对pandas比较理解或者知道原因,欢迎在评论中留言。

以上这篇pandas数据预处理之dataframe的groupby操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单的python后台管理程序
Apr 13 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 Python
Python 通配符删除文件的实例
Apr 24 Python
python3之模块psutil系统性能信息使用
May 30 Python
Flask入门之上传文件到服务器的方法示例
Jul 18 Python
Python全排列操作实例分析
Jul 24 Python
python绘制散点图并标记序号的方法
Dec 11 Python
python读取目录下最新的文件夹方法
Dec 24 Python
Python最小二乘法矩阵
Jan 02 Python
在ipython notebook中使用argparse方式
Apr 20 Python
python 怎样进行内存管理
Nov 10 Python
Python创建自己的加密货币的示例
Mar 01 Python
DataFrame 将某列数据转为数组的方法
Apr 13 #Python
Python中将dataframe转换为字典的实例
Apr 13 #Python
Python 实现使用dict 创建二维数据、DataFrame
Apr 13 #Python
每天迁移MySQL历史数据到历史库Python脚本
Apr 13 #Python
python实现数据库跨服务器迁移
Apr 12 #Python
解决python3爬虫无法显示中文的问题
Apr 12 #Python
python读取中文txt文本的方法
Apr 12 #Python
You might like
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
PHP设计模式之观察者模式定义与用法分析
2019/04/04 PHP
javascript删除字符串最后一个字符
2014/01/14 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
2020/11/13 Javascript
python生成日历实例解析
2014/08/21 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
python取代netcat过程分析
2018/02/10 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
Python根据服务获取端口号的方法
2019/09/25 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
荟萃全球保健品:维他购
2018/05/09 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
企业厂长岗位职责
2013/12/17 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
企业介绍信范文
2015/01/30 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python