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

南昌做企业网站新一轮疫情最新消息

南昌做企业网站,新一轮疫情最新消息,网站建设课程思政,云南省网站备案要求文章目录 1. 介绍transform:apply: 2. 应用示例示例数据使用transform进行向量化操作使用apply进行更复杂的操作性能比较 3. 示例输出使用 transform 进行向量化操作使用 apply 进行更复杂的操作 4. transform再举例示例数据使用transform计算平均销售额…

文章目录

  • 1. 介绍
      • `transform`:
      • `apply`:
  • 2. 应用示例
      • 示例数据
      • 使用`transform`进行向量化操作
      • 使用`apply`进行更复杂的操作
      • 性能比较
  • 3. 示例输出
      • 使用 `transform` 进行向量化操作
      • 使用 `apply` 进行更复杂的操作
  • 4. transform再举例
      • 示例数据
      • 使用`transform`计算平均销售额
      • 输出

1. 介绍

在Pandas中,transformapply都可以用于对分组数据进行操作,但它们有不同的使用场景和性能特性:

transform

  1. 返回与输入相同大小的DataFrametransform函数应用于每个分组后,会将结果广播到原始数据的大小,这通常使得transform更高效。
  2. 性能优化transform通常会尝试用更高效的内部机制来执行向量化操作。
  3. 限制:由于结果会被广播到原始数据的大小,因此transform应用的函数应返回标量值或与输入组相同大小的数组。

apply

  1. 更为通用apply适用于更复杂的操作,包括改变DataFrame的大小。
  2. 灵活性apply可以用于执行更多种类的操作,例如,可以返回DataFrame、Series或标量。
  3. 可能性能较低apply的通用性通常意味着它在性能上不如transform高效,尤其是在需要广播结果到原始数据大小的场景。

因此,当操作可以使用transform完成时,通常更推荐使用transform,以获取更好的性能。当需要更大的灵活性时(例如,改变输出的形状或进行更复杂的计算),则可以使用apply

2. 应用示例

当然,以下是一些应用示例来说明transformapply的不同用途和性能特性。

示例数据

假设我们有以下DataFrame,它表示三个不同产品在不同日期的销售额:

import pandas as pddata = {'Date': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03', '2021-01-03'],'Product': ['A', 'B', 'A', 'A', 'B', 'C'],'Revenue': [100, 150, 200, 50, 300, 400]}
df = pd.DataFrame(data)

使用transform进行向量化操作

如果我们想要在原DataFrame中添加一个新列,该列表示每个产品的总销售额,我们可以使用transform

df['Total_Revenue_By_Product'] = df.groupby('Product')['Revenue'].transform('sum')

transform将自动广播每个组的结果(即每个产品的总销售额)到该组内所有行。

使用apply进行更复杂的操作

假设我们想要获得每个产品最高单日销售额的日期,这是一个更复杂的操作,可以使用apply

def get_max_revenue_date(group):return group.loc[group['Revenue'].idxmax(), 'Date']max_revenue_date = df.groupby('Product').apply(get_max_revenue_date)

这里,apply允许我们对每个组使用更复杂的函数,并且返回一个与输入形状不同的结果。

性能比较

通常,在可以使用transform的场合,使用transform会更高效。例如,如果我们有一个非常大的DataFrame,使用transform来计算组平均值通常会比使用apply更快。

3. 示例输出

当然,让我说明一下各个示例的输出。

使用 transform 进行向量化操作

如果我们运行这段代码:

df['Total_Revenue_By_Product'] = df.groupby('Product')['Revenue'].transform('sum')

df 会被更新,新增了一个列 Total_Revenue_By_Product,它包含每个产品的总销售额,并会广播到该产品的所有记录。

更新后的 df 如下:

         Date Product  Revenue  Total_Revenue_By_Product
0  2021-01-01       A      100                       350
1  2021-01-01       B      150                       450
2  2021-01-02       A      200                       350
3  2021-01-02       A       50                       350
4  2021-01-03       B      300                       450
5  2021-01-03       C      400                       400

如您所见,产品A、B、和C的总销售额分别是350、450和400,这些值被广播到了每一行对应的产品。

使用 apply 进行更复杂的操作

如果我们运行这段代码:

def get_max_revenue_date(group):return group.loc[group['Revenue'].idxmax(), 'Date']max_revenue_date = df.groupby('Product').apply(get_max_revenue_date)

max_revenue_date 会是一个 Series,其中包含每个产品销售额最高的日期:

Product
A    2021-01-02
B    2021-01-03
C    2021-01-03
dtype: object

这里,我们可以看到产品A、B、和C销售额最高的日期分别是 2021-01-022021-01-032021-01-03

4. transform再举例

当然,下面是另一个使用transform的例子。这次,我们将计算每个产品的平均销售额,并将该信息添加为新的列。

示例数据

我们还是使用相同的数据集:

data = {'Date': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03', '2021-01-03'],'Product': ['A', 'B', 'A', 'A', 'B', 'C'],'Revenue': [100, 150, 200, 50, 300, 400]}
df = pd.DataFrame(data)

使用transform计算平均销售额

df['Average_Revenue_By_Product'] = df.groupby('Product')['Revenue'].transform('mean')

运行这行代码后,df会更新,新增一个列Average_Revenue_By_Product,其中包含每个产品的平均销售额。

输出

更新后的df会是这样:

         Date Product  Revenue  Average_Revenue_By_Product
0  2021-01-01       A      100                  116.666667
1  2021-01-01       B      150                  225.000000
2  2021-01-02       A      200                  116.666667
3  2021-01-02       A       50                  116.666667
4  2021-01-03       B      300                  225.000000
5  2021-01-03       C      400                  400.000000

如您所见,产品A、B、和C的平均销售额分别是约116.67、225和400,这些值被广播到了每一行对应的产品。

http://www.hkea.cn/news/878961/

相关文章:

  • 人是用什么做的视频网站网络营销方案设计毕业设计
  • 建设网站考虑因素关键词优化是怎么弄的
  • 陕西营销型网站建设推广普通话的内容简短
  • 做配电箱的专门网站百度指数属于行业趋势及人群
  • 学做网站的网站重庆seo整站优化报价
  • 保定网站设计概述seo推广软件排名
  • 查pv uv的网站网络营销推广服务
  • 怎样让客户做网站优化 保证排名
  • 企业营销型网站做的好网络营销的有哪些特点
  • 网站开发 合同兰州快速seo整站优化招商
  • 网站开发技术现状深圳网络营销推广培训
  • 知名网络公司有哪些河北网站seo
  • 学做网站多少钱关键词难易度分析
  • 传奇如何做网站网站建设策划书案例
  • 龙岗 网站建设深圳信科最好用的搜索神器
  • 动态网站开发日志重庆seo整站优化报价
  • 魔站网站建设微信公众号运营推广方案
  • 好的网站建设公司营销推广外包公司
  • 教育机构做网站素材长尾关键词爱站
  • 做网站选什么系统企业网站seo推广
  • 山东省南水北调建设管理局网站腾讯网qq网站
  • 菏泽做网站公司sem网络营销
  • 专业建站外包兰州网络优化seo
  • 企业邮箱腾讯杭州seo按天计费
  • 政府网站建设先进个人事迹互动营销
  • 网站建设之织梦模板做国外网站
  • 小程序电商模板seo关键词排名优化品牌
  • 泉州网站优化排名百度关键字优化价格
  • 上海网站建设好处win优化大师官网
  • 适合毕设做的简单网站初学seo网站推广需要怎么做