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实现提取谷歌音乐搜索结果的方法
Jul 10 Python
python学习必备知识汇总
Sep 08 Python
python文本数据相似度的度量
Mar 12 Python
python调用百度语音REST API
Aug 30 Python
在python中bool函数的取值方法
Nov 01 Python
详解Python读取yaml文件多层菜单
Mar 23 Python
python SQLAlchemy 中的Engine详解
Jul 04 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
Python JSON常用编解码方法代码实例
Sep 05 Python
Python扫描端口的实现
Jan 25 Python
python xlwt模块的使用解析
Apr 13 Python
Python编程编写完善的命令行工具
Sep 15 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利用单例模式实现日志处理类库
2014/02/10 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
使用Apache的rewrite
2021/03/09 Servers
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
js实现页面导航层级指示效果
2020/08/25 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
Python中isnumeric()方法的使用简介
2015/05/19 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
python跳出双层for循环的解决方法
2019/06/24 Python
Python tkinter模版代码实例
2020/02/05 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
大学生学业生涯规划
2014/01/05 职场文书
大家检讨书5000字
2014/02/03 职场文书
新教师培训心得体会
2014/09/02 职场文书
党员个人剖析材料
2014/09/30 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python
Python 如何实现文件自动去重
2021/06/02 Python
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python