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 相关文章推荐
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
python 简单的绘图工具turtle使用详解
Jun 21 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
Python3 使用cookiejar管理cookie的方法
Dec 28 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
Python利用FFT进行简单滤波的实现
Feb 26 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
Python自动化办公Excel模块openpyxl原理及用法解析
Nov 05 Python
Python趣味挑战之教你用pygame画进度条
May 31 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
mysql5写入和读出乱码解决
2006/11/25 PHP
织梦模板标记简介
2007/03/11 PHP
php 进度条实现代码
2009/03/10 PHP
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
php简单获取复选框值的方法
2016/05/11 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python实现通过shelve修改对象实例
2014/09/26 Python
pygame学习笔记(4):声音控制
2015/04/15 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
女大学生自我鉴定
2013/12/09 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL