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 相关文章推荐
简单的Python2.7编程初学经验总结
Apr 01 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
Python入门之三角函数全解【收藏】
Nov 08 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
Django实现简单网页弹出警告代码
Nov 15 Python
Python for循环与getitem的关系详解
Jan 02 Python
Python Pandas数据分析工具用法实例
Nov 05 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 Python
Python答题卡识别并给出分数的实现代码
Jun 22 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+MYSQL开发工具及资源收藏
2007/01/02 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
php中adodbzip类实例
2014/12/08 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
[02:06]DOTA2肉山黑名单魔法终结者 敌法师中文配音鉴赏
2013/06/17 DOTA
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
利用python模拟实现POST请求提交图片的方法
2017/07/25 Python
用matplotlib画等高线图详解
2017/12/14 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
Python2包含中文报错的解决方法
2018/07/09 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
Python内置加密模块用法解析
2019/11/25 Python
Python3运算符常见用法分析
2020/02/14 Python
执行Python程序时模块报错问题
2020/03/26 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
Python 忽略文件名编码的方法
2020/08/01 Python
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
学生党支部先进事迹
2014/02/04 职场文书
公司委托书格式范本
2014/09/16 职场文书
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python
Spring实现内置监听器
2021/07/09 Java/Android
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA