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 相关文章推荐
压缩包密码破解示例分享(类似典破解)
Jan 17 Python
Python中用max()方法求最大值的介绍
May 15 Python
Python pickle模块用法实例分析
May 27 Python
Django的信号机制详解
May 05 Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
在Django中实现添加user到group并查看
Nov 18 Python
Python实现对adb命令封装
Mar 06 Python
Selenium启动Chrome时配置选项详解
Mar 18 Python
Django Path转换器自定义及正则代码实例
May 29 Python
Python3中对json格式数据的分析处理
Jan 28 Python
python数字图像处理:图像简单滤波
Jun 28 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
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
简单实现php上传文件功能
2017/09/21 PHP
jquery插件制作简单示例说明
2012/02/03 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
Vue项目中设置背景图片方法
2018/02/21 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
Python中异常重试的解决方案详解
2017/05/05 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
python和php哪个更适合写爬虫
2020/06/22 Python
Python requests上传文件实现步骤
2020/09/15 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
通信工程毕业生自荐信
2013/11/01 职场文书
心得体会开头
2014/01/01 职场文书
篮球社团活动总结
2014/06/27 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL