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使用mailbox打印电子邮件的方法
Apr 30 Python
巧用python和libnmapd,提取Nmap扫描结果
Aug 23 Python
win8下python3.4安装和环境配置图文教程
Jul 31 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
pytorch 自定义数据集加载方法
Aug 18 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
python实现H2O中的随机森林算法介绍及其项目实战
Aug 29 Python
Python中生成一个指定长度的随机字符串实现示例
Nov 06 Python
python代码打印100-999之间的回文数示例
Nov 24 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
Python标准库shutil模块使用方法解析
Mar 10 Python
Django Xadmin多对多字段过滤实例
Apr 07 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加密解密函数authcode的用法详细解析
2013/10/28 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
php实现购物车功能(下)
2016/01/05 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
python实现人人网登录示例分享
2014/01/19 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
python 自动批量打开网页的示例
2019/02/21 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
科室工作个人总结的自我评价
2013/10/29 职场文书
小学教师自我鉴定
2013/11/07 职场文书
资源工程专业毕业生求职信
2014/02/27 职场文书
3.12植树节活动总结2014
2014/03/13 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
高中体育课教学反思
2016/02/16 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书