分享

Pandas高级函数transform使用指南

 禁忌石 2022-04-10

大家好,本文结合一个简单的案例来讲解Pandas中高级函数transform的使用。

官网的案例比较简单,具体地址:
https://pandas./docs/reference/api/pandas.DataFrame.transform.html

文章图片1

模拟数据

模拟了这样一份虚拟数据:姓名+科目+分数

文章图片2
文章图片3
df_copy = df.copy() # 生成一个副本待用

需求很简单:求出每个学生的各科成绩在个人总成绩中的占比

方法1:groupby+merge

步骤1:求出每个人的总成绩

文章图片4

步骤2:使用merge拼接数据

Merge合并数据的时候使用全连接,保留两个DataFrame的全部字段

文章图片5

求出百分比

求出占比,并且转成百分比的形式:

文章图片6
文章图片7

方法2:groupby+transform

步骤1:直接使用transform

一步到位,直接求出每个学生的总成绩这个就是tranform的神奇之处。不用中间转换过程

文章图片8

步骤2:求出百分比

后面是同样的过程和方法求出百分比

文章图片9

活学活用transform

除了求和sum,transform的应用还很灵活:

使用其他内置聚合函数

df_copy['总成绩'] = df_copy.groupby('姓名')['分数'].transform(sum)df_copy['平均成绩'] = df_copy.groupby('姓名')['分数'].transform(np.mean)  # 不能直接meandf_copy['最高分'] = df_copy.groupby('姓名')['分数'].transform(max)df_copy['最低分'] = df_copy.groupby('姓名')['分数'].transform(min)df_copy.head()  # 显示5
文章图片10

同时使用多样化的聚合函数求解多个指标

使用自定义函数

文章图片11

使用lambda函数

文章图片12

使用其他内置函数

除了和数据相关的函数,还可以是其他的函数:

1、将名字改成小写

文章图片13

2、求名字的长度len

文章图片14

传入多个函数

对不同的字段传入不同的函数

文章图片15

筛选过滤数据

除了新增或者改变数据,transform还能够筛选满足要求的数据:

  • 总分大于350分
  • 科目的最低分为90分
文章图片16

备忘录

记住这张图,能够帮助你很好地理解transform函数的使用,建议收藏保存~

文章图片17

原文链接:

https://mp.weixin.qq.com/s/nkC8qUc3mIXXJ1GF0FLs1w

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多