打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Pandas高级函数transform使用指南

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

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

模拟数据

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

df_copy = df.copy() # 生成一个副本待用

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

方法1:groupby+merge

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

步骤2:使用merge拼接数据

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

求出百分比

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

方法2:groupby+transform

步骤1:直接使用transform

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

步骤2:求出百分比

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

活学活用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

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

使用自定义函数

使用lambda函数

使用其他内置函数

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

1、将名字改成小写

2、求名字的长度len

传入多个函数

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

筛选过滤数据

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

  • 总分大于350分
  • 科目的最低分为90分

备忘录

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

原文链接:

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
pandas骚操作:transform 数据转换的 4 个常用技巧!
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
按照A列进行分组并计算出B列每个分组的平均值
pandas学习
最强大的数据分析利器pandas||数据分析之数据分组
Pandas分组统计函数:groupby、pivot
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服