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使用pyhook监控键盘并实现切换歌曲的功能
Jul 18 Python
Python闭包实现计数器的方法
May 05 Python
深入解析Python中的__builtins__内建对象
Jun 21 Python
Python 爬虫图片简单实现
Jun 01 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
Jun 04 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
Jan 06 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 Python
python中zip()函数遍历多个列表方法
Feb 18 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一些有意思的小区别
2006/12/06 PHP
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
PHP include_path设置技巧分享
2011/07/03 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
2014/02/10 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
[01:03:50]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第二场 2月7日
2021/03/11 DOTA
使用python绘制常用的图表
2016/08/27 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
机械专业个人求职自荐信格式
2013/09/21 职场文书
代办委托书怎样写
2014/04/08 职场文书
2014年业务工作总结
2014/11/17 职场文书
学校开除通知书
2015/04/25 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
入党介绍人意见2015
2015/06/01 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书