Python技巧分享之groupby基础用法详解

 更新时间:2022年10月26日 08:52:52   作者:Python数据挖掘  
python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算!本文将通过一些示例和大家详细讲讲groupby的基础用法,需要的可以参考一下

模拟数据

import pandas as pd
import numpy as np
employees = ["小明","小周","小孙","小王","小张"]   # 5位员工
time = ["上半年", "下半年"]


df=pd.DataFrame({
    "employees":np.random.choice(employees,10),  # 在员工中重复选择10次
    # 另一种写法
    #"employees":[employees[x] for x in np.random.randint(0,len(employees),10)],  
    "time":np.random.choice(time,10),
    "salary":np.random.randint(800,1000,10),  # 800-1000之间的薪资选择10个数值
    "score":np.random.randint(6,12,10)  # 6-11的分数选择10个
})

df

groupby+单个字段+单个聚合

求解每个人的总薪资金额:

total_salary = df.groupby("employees")["salary"].sum().reset_index()
total_salary

使用agg也能够实现上面的效果:

df.groupby("employees").agg({"salary":"sum"}).reset_index()

df.groupby("employees").agg({"salary":np.sum}).reset_index()

groupby+单个字段+多个聚合

求解每个人的总薪资金额和薪资的平均数

方法1:使用groupby+merge

mean_salary = df.groupby("employees")["salary"].mean().reset_index()
mean_salary

然后将上面的两个结果进行组合;在合并之前为了字段的名字更加的直观,我们重命名下:

total_salary.rename(columns={"employees":"total_salary"})
mean_salary.columns = ["employees","mean_salary"]
total_mean = total_salary.merge(mean_salary)
total_mean

方法2:使用groupby+agg

total_mean = df.groupby("employees")\
            .agg(total_salary=("salary", "sum"), 
                 mean_salary=("salary", "mean"))\
            .reset_index()
total_mean

groupby+多个字段+单个聚合

针对多个字段的同时聚合:

df.groupby(["employees","time"])["salary"].sum().reset_index()

# 使用agg来实现

df.groupby(["employees","time"]).agg({"salary":"sum"}).reset_index()

groupby+多个字段+多个聚合

使用的方法是:

agg(’新列名‘=(’原列名‘, ’统计函数/方法‘))

df.groupby(["employees","time"])\
            .agg(total_salary=("salary", "sum"), 
                mean_salary=("salary", "mean"),
                total_score=("score", "sum") 
                )\
            .reset_index()

到此这篇关于Python技巧分享之groupby基础用法详解的文章就介绍到这了,更多相关Python groupby用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pyqt4教程之messagebox使用示例分享

    pyqt4教程之messagebox使用示例分享

    这篇文章主要介绍了pyqt4的messagebox使用示例,需要的朋友可以参考下
    2014-03-03
  • Python Pandas对缺失值的处理方法

    Python Pandas对缺失值的处理方法

    这篇文章主要给大家介绍了关于Python Pandas对缺失值的处理方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Python Pandas具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • OpenCV图像的几何变换处理方法详解

    OpenCV图像的几何变换处理方法详解

    这篇文章主要给大家介绍了关于OpenCV图像的几何变换处理的相关资料,图像的几何变换是指将一幅图像映射到另一幅图像内,有缩放、翻转、仿射变换、透视、重映射等操作,需要的朋友可以参考下
    2024-03-03
  • Python字符串的创建和驻留机制详解

    Python字符串的创建和驻留机制详解

    字符串驻留是一种在内存中仅保存一份相同且不可变字符串的方法,本文重点给大家介绍Python字符串的创建和驻留机制,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • python异步爬虫之多线程

    python异步爬虫之多线程

    这篇文章主要介绍了python异步爬虫之多线程,多线程可以为相关阻塞的操作单独开启线程或者进程,阻塞操作可以异步执行,但是无法无限制开启多线程或多进程,下面我们一起学习详细内容,需要的朋友可以参考一下
    2022-02-02
  • 如何使用python切换hosts文件

    如何使用python切换hosts文件

    这篇文章主要介绍了如何使用python切换hosts文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 使用Python脚本对Linux服务器进行监控的教程

    使用Python脚本对Linux服务器进行监控的教程

    这篇文章主要介绍了使用Python程序对Linux服务器进行监控的教程,主要基于Python2.7的版本,需要的朋友可以参考下
    2015-04-04
  • Python列表推导式详解

    Python列表推导式详解

    列表推导式是Python构建列表(list)的一种快捷方式,可以使用简洁的代码就创建出一个列表.本文通过代码示例详细介绍了python列表推导式,感兴趣的同学可以参考阅读
    2023-04-04
  • Python字符串拼接六种方法介绍

    Python字符串拼接六种方法介绍

    这篇文章主要介绍了Python字符串拼接六种方法介绍,具有一定借鉴价值,需要的朋友看可以参考下。
    2017-12-12
  • python实现图片上添加图片

    python实现图片上添加图片

    这篇文章主要为大家详细介绍了python实现图片上添加图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11

最新评论