pandas数据预处理之dataframe的groupby操作方法

 更新时间:2018年04月13日 09:16:48   作者:STHSF  
下面小编就为大家分享一篇pandas数据预处理之dataframe的groupby操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在数据预处理过程中可能会遇到这样的问题,如下图:数据中某一个key有多组数据,如何分别对每个key进行相同的运算?

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操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Pyqt5实战小案例之界面与逻辑分离的小计算器程序

    Pyqt5实战小案例之界面与逻辑分离的小计算器程序

    网上很多PyQt5信号槽与界面分离的例子,但是真正开发起来很不方便,下面这篇文章主要给大家介绍了关于Pyqt5实战小案例之界面与逻辑分离的小计算器程序,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Python四大金刚之列表详解

    Python四大金刚之列表详解

    这篇文章主要介绍了Python的列表,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助
    2021-10-10
  • python3+RobotFramework环境搭建过程

    python3+RobotFramework环境搭建过程

    之前用的python2.7+robotframework进行的自动化测试,python3的还没尝试,今天尝试了下,搭建环境的时候也是各种报错,今天给大家分享下python3+RobotFramework环境搭建过程,感兴趣的朋友一起看看吧
    2023-08-08
  • selenium动态数据获取的方法实现

    selenium动态数据获取的方法实现

    本文主要介绍了selenium动态数据获取的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • python中sys.argv函数精简概括

    python中sys.argv函数精简概括

    本篇文章给大家分享了关于python中sys.argv函数的相关知识点,有兴趣的朋友可以参考学习下。
    2018-07-07
  • 一文带你探索Python中15个常见的魔术方法

    一文带你探索Python中15个常见的魔术方法

    在Python中,特殊方法(也称为魔术方法)是由Python解释器自动调用的,我们不需要手动调用它们,本文小编为大家整理了15个常见特殊方法的实现,希望对大家有所帮助
    2024-01-01
  • pytorch::Dataloader中的迭代器和生成器应用详解

    pytorch::Dataloader中的迭代器和生成器应用详解

    这篇文章主要介绍了pytorch::Dataloader中的迭代器和生成器应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Django实现简单网页弹出警告代码

    Django实现简单网页弹出警告代码

    今天小编就为大家分享一篇Django实现简单网页弹出警告代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Matplotlib中rcParams使用方法

    Matplotlib中rcParams使用方法

    这篇文章主要介绍了Matplotlib中rcParams使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python如何解析复杂sql,实现数据库和表的提取的实例剖析

    python如何解析复杂sql,实现数据库和表的提取的实例剖析

    这篇文章主要介绍了python如何解析复杂sql,实现数据库和表的提取的实例剖析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05

最新评论