当前位置: 首页 > news >正文

那里有制作网站企业吉林省建设监理协会网站诚信建设

那里有制作网站企业,吉林省建设监理协会网站诚信建设,广州 环保 凡人网站建设,长春高铁站大家好#xff0c;在数据分析中#xff0c;需要对数据进行分组统计与计算#xff0c;Pandas的groupby功能提供了强大的分组功能。transform方法是groupby中常用的转换方法之一#xff0c;它允许在分组的基础上进行灵活的转换和计算#xff0c;并将结果与原始数据保持相同的…大家好在数据分析中需要对数据进行分组统计与计算Pandas的groupby功能提供了强大的分组功能。transform方法是groupby中常用的转换方法之一它允许在分组的基础上进行灵活的转换和计算并将结果与原始数据保持相同的结构。因此transform非常适合需要将计算结果返回到原始DataFrame的情况。 1.transform方法基本概念 transform方法可以对每个分组进行计算并将结果“广播”回原始DataFrame使得返回的DataFrame形状与原始数据一致。与其他groupby操作不同transform返回的数据不会改变原始DataFrame的行数而是将分组后的计算结果逐行赋值给原始DataFrame。 transform方法的基本语法如下 DataFrame.groupby(列名)[列名].transform(func)groupby(列名)指定需要分组的列。 transform(func)对每个分组应用函数func可以是内置的聚合函数也可以是自定义函数。 常见的聚合函数包括求均值mean、求和sum、最大值max、最小值min等。 2.示例数据集 使用一个包含员工信息的示例数据集包括员工姓名、部门和薪资信息方便演示各种transform操作。 import pandas as pd# 创建示例数据集 data  {姓名: [Alice, Bob, Charlie, David, Eve, Frank],部门: [销售, 销售, IT, IT, 市场, 市场],薪资: [7000, 6800, 9000, 8500, 7500, 7700] } df  pd.DataFrame(data) print(原始数据集\n, df)结果如下所示 姓名    部门    薪资 0     Alice    销售  7000 1       Bob    销售  6800 2   Charlie    IT    9000 3     David    IT    8500 4       Eve    市场  7500 5     Frank    市场  7700 3.分组计算并广播结果 假设希望计算每个部门的平均薪资并将该值赋予每位员工。使用transform方法可以实现这点计算部门平均薪资并广播 # 使用 transform 计算每个部门的平均薪资 df[部门平均薪资]  df.groupby(部门)[薪资].transform(mean) print(部门平均薪资\n, df)结果如下所示 姓名    部门    薪资    部门平均薪资 0     Alice    销售  7000  6900.0 1       Bob    销售  6800  6900.0 2   Charlie    IT    9000  8750.0 3     David    IT    8500  8750.0 4       Eve    市场  7500  7600.0 5     Frank    市场  7700  7600.0在这个示例中transform(mean)计算了每个部门的平均薪资并将计算结果广播回原始DataFrame的每一行中。 4.使用自定义函数进行转换 transform不仅支持常规的聚合函数还支持自定义函数。假设计算每位员工的薪资与部门平均薪资的差异可以使用自定义函数实现。 # 自定义函数计算薪资与部门平均薪资的差异 df[薪资差异]  df.groupby(部门)[薪资].transform(lambda x: x - x.mean()) print(薪资差异\n, df)结果如下所示 姓名    部门    薪资    部门平均薪资   薪资差异 0     Alice    销售  7000  6900.0    100.0 1       Bob    销售  6800  6900.0   -100.0 2   Charlie    IT    9000  8750.0    250.0 3     David    IT    8500  8750.0   -250.0 4       Eve    市场  7500  7600.0   -100.0 5     Frank    市场  7700  7600.0    100.0通过自定义lambda函数计算了每位员工的薪资差异进一步揭示了员工与部门平均水平的偏差情况。 5.transform与apply的区别 transform返回的结果与原始DataFrame的形状一致每个分组的计算结果会逐行赋值给原DataFrame。 apply通常返回缩小后的DataFrame适合整体的分组操作。 以下示例展示了apply与transform的差异 # 使用 apply 计算每个部门的薪资均值 df_apply  df.groupby(部门)[薪资].apply(lambda x: x.mean()) print(使用 apply 结果\n, df_apply)结果如下所示 部门 IT    8750.0 市场    7600.0 销售    6900.0 Name: 薪资, dtype: float64apply直接返回分组后的平均薪资而transform会将分组后的均值按行赋回原DataFrame。transform的输出与原DataFrame形状一致因此适合需要广播结果的计算。 6.transform方法的高级应用 6.1 计算每位员工的部门排名 可以使用transform和rank函数计算每位员工在其部门内的薪资排名 # 计算每位员工的部门薪资排名 df[部门薪资排名]  df.groupby(部门)[薪资].transform(rank, ascendingFalse) print(部门薪资排名\n, df)结果如下所示 姓名    部门    薪资    部门平均薪资   薪资差异   部门薪资排名 0     Alice    销售  7000  6900.0    100.0     1.0 1       Bob    销售  6800  6900.0   -100.0     2.0 2   Charlie    IT    9000  8750.0    250.0     1.0 3     David    IT    8500  8750.0   -250.0     2.0 4       Eve    市场  7500  7600.0   -100.0     2.0 5     Frank    市场  7700  7600.0    100.0     1.0在这个示例中transform(rank)计算了每位员工在其部门内的薪资排名。 6.2 归一化处理按部门归一化薪资 归一化处理通常用于数据预处理使数据更加集中和标准化。以下代码展示如何按部门对薪资进行归一化 # 按部门归一化薪资 df[归一化薪资]  df.groupby(部门)[薪资].transform(lambda x: (x - x.min()) / (x.max() - x.min())) print(按部门归一化薪资\n, df)结果如下所示 姓名    部门    薪资    部门平均薪资   薪资差异   部门薪资排名  归一化薪资 0     Alice    销售  7000  6900.0    100.0     1.0    1.0 1       Bob    销售  6800  6900.0   -100.0     2.0    0.0 2   Charlie    IT    9000  8750.0    250.0     1.0    1.0 3     David    IT    8500  8750.0   -250.0     2.0    0.0 4       Eve    市场  7500  7600.0   -100.0     2.0    0.0 5     Frank    市场  7700  7600.0    100.0     1.0    1.0在这个示例中使用lambda函数实现了归一化操作 (x - x.min()) / (x.max() - x.min())将每个部门的薪资归一化到[0, 1]区间。归一化后的薪资可以更直观地比较不同部门内部的薪资差异。 6.3 标准化处理按部门标准化薪资 标准化是数据预处理中的另一种常用方法通常用于使数据符合正态分布。以下代码展示如何按部门对薪资进行标准化 # 按部门标准化薪资 df[标准化薪资]  df.groupby(部门)[薪资].transform(lambda x: (x - x.mean()) / x.std()) print(按部门标准化薪资\n, df)结果如下所示 姓名    部门    薪资    部门平均薪资   薪资差异   部门薪资排名  归一化薪资  标准化薪资 0     Alice    销售  7000  6900.0    100.0     1.0    1.0      0.707 1       Bob    销售  6800  6900.0   -100.0     2.0    0.0     -0.707 2   Charlie    IT    9000  8750.0    250.0     1.0    1.0      0.707 3     David    IT    8500  8750.0   -250.0     2.0    0.0     -0.707 4       Eve    市场  7500  7600.0   -100.0     2.0    0.0     -0.707 5     Frank    市场  7700  7600.0    100.0     1.0    1.0      0.707在这个示例中使用transform方法对每个部门的薪资进行标准化处理 (x - x.mean()) / x.std()从而将数据转换为均值为0、标准差为1的分布方便不同部门之间的薪资比较。 transform方法为Pandas的分组操作提供了强大的支持适用于在分组基础上进行灵活的逐行计算和结果广播。本文通过实例展示transform的基本用法、自定义函数的应用、分组排名、归一化和标准化等场景。通过掌握transform的使用技巧可以使数据处理和分析更加高效和灵活。
http://www.hkea.cn/news/14358010/

相关文章:

  • 淘宝买网站开发不行吗php和mysql做租车网站
  • vps 建网站 代理做商业网站赚钱吗
  • 建视频网站中关村网站建设
  • 德州专业网站开发公司引擎搜索对人类记忆的影响
  • 旅游网站建设价格中企动力北京总部地址
  • 国内出名网站建设设计公司免费二维码制作
  • 门户网站建设多久交流平台网站怎么做
  • 订阅号上链接的网站怎么做的wordpress 模板 html5
  • 网页制作的一般流程有哪些中山网站seo优化
  • 网站建设需求表模板需要网站建设的是哪一类人
  • vs html5网站开发wordpress4.8发布
  • 深圳市专业做网站网站策划怎么做内容
  • 南昌微信网站建设查工程中标信息哪个网站
  • 网站建设前台和后台设计wordpress新建分类目录
  • 郧阳网站建设易优建站
  • 珠海高端网站建设公司定制床需要多少钱
  • 注册网站显示lp或设备超限怎么办用jsp做网站的技术路线
  • 做网站哪家最好WordPress网络超时
  • 网站建设的目的及目标嘉兴网站建设方案服务
  • 无棣县建设局网站网站建设基本内容
  • 购物网站成品惠州网站设计哪家好
  • 伍佰亿网站怎么做2022新闻热点10条
  • lamp 网站建设论文收费网站空间
  • 网站后台报表统计系统js 上传wordpress
  • 网站毕业设计选题求个网站知乎
  • 怎样设网站wordpress wp polls
  • wordpress类似的网站python基础教程入门
  • 武昌做网站公司推荐怎么做网上卖货
  • 网站开发框架的工具网站建设所需服务器
  • 金融企业网站建设公司房地产网站建设内容