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爬虫功能
Dec 31 Python
Python算法之图的遍历
Nov 16 Python
python数据封装json格式数据
Mar 04 Python
对Python 内建函数和保留字详解
Oct 15 Python
python爬虫获取小区经纬度以及结构化地址
Dec 30 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
Python语言异常处理测试过程解析
Jan 08 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
python实现同一局域网下传输图片
Mar 20 Python
python selenium xpath定位操作
Sep 01 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
Python超简单容易上手的画图工具库推荐
May 10 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
Terran剧情介绍
2020/03/14 星际争霸
用PHP读取和编写XML DOM的实现代码
2011/02/03 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
两种php实现图片上传的方法
2016/01/22 PHP
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
简单谈谈Python中的闭包
2016/11/30 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
Django实现跨域的2种方法
2019/07/31 Python
python之生成多层json结构的实现
2020/02/27 Python
python实现学生管理系统开发
2020/07/24 Python
使用css如何制作时间ICON方法实践
2012/11/12 HTML / CSS
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
解释下面关于J2EE的名词
2013/11/15 面试题
派出所所长先进事迹
2014/05/19 职场文书
作风建设年活动实施方案
2014/10/24 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
Nginx配置根据url参数重定向
2022/04/11 Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python