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判断windows隐藏文件的方法
Mar 21 Python
详细解析Python当中的数据类型和变量
Apr 25 Python
使用python实现生成用户信息
Mar 20 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
python使用zip将list转为json的方法
Dec 31 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
Python安装selenium包详细过程
Jul 23 Python
Python中的相关分析correlation analysis的实现
Aug 29 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
Python sys模块常用方法解析
Feb 20 Python
Python延迟绑定问题原理及解决方案
Aug 04 Python
python tqdm实现进度条的示例代码
Nov 10 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 adodb连接mssql解决乱码问题
2009/06/12 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
jquery each()源代码
2011/02/14 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
JS实现显示当前日期的实例代码
2018/07/03 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
2018/01/11 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
飘柔洗发水广告词
2014/03/14 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
重阳节主题班会
2015/08/17 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏
如何通过cmd 连接阿里云服务器
2022/04/18 Servers
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技