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中global与nonlocal比较
Nov 21 Python
Python中使用Inotify监控文件实例
Feb 14 Python
Python脚本实现格式化css文件
Apr 08 Python
在Python的Flask框架中实现单元测试的教程
Apr 20 Python
python装饰器与递归算法详解
Feb 18 Python
解决Python出现_warn_unsafe_extraction问题的方法
Mar 24 Python
Python中实例化class的执行顺序示例详解
Oct 14 Python
详解python中init方法和随机数方法
Mar 13 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
Dec 18 Python
python数字类型math库原理解析
Mar 02 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
python实现学生信息管理系统(精简版)
Nov 27 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
浅析php数据类型转换
2014/01/09 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
js查错流程归纳
2012/05/04 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
微信小程序实现签到功能
2018/10/31 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
Python正则表达式如何匹配中文
2020/05/27 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
Python 创建守护进程的示例
2020/09/29 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
甜美蛋糕店创业计划书
2014/01/30 职场文书
《自然之道》教学反思
2014/02/11 职场文书
文明市民先进事迹
2014/05/15 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
2014年销售工作总结
2014/12/01 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
导游词之河北邯郸
2019/09/12 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫