迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Pandas 通过 Groupby 应用变换

作者:迹忆客 最近更新:2024/04/23 浏览次数:

groupby() 是 Python 中一个强大的方法,它允许我们根据某些标准将数据分成不同的组。目的是运行计算并执行更好的分析。


Python 中 apply()transform() 的区别

apply()transform() 是与 groupby() 方法调用结合使用的两种方法。这两种方法的区别在于传递的参数和返回的值。

apply() 方法接受参数作为 DataFrame 并返回 DataFrame 的标量序列。因此,它允许我们对每个组的列、行和完整的 DataFrame 进行操作。

transform() 方法仅接受参数作为表示每个组中的列的系列,并返回与输入系列长度相同的序列。因此,我们一次只能对每个组内的特定列进行操作。


在 Python Pandas 中使用 apply() 方法

在以下代码中,我们加载了一个包含学生记录的 CSV 文件。我们使用 apply 函数来显示每个部门中的最高分数。

首先,我们必须使用 groupby() 方法对每个部门进行分组。然后使用 max() 函数找到每个部门的最高分。

输出以系列的形式返回。我们还可以对多列或整个 DataFrame 执行操作。

# Python 3.x
import pandas as pd

df = pd.read_csv("Student.csv")
display(df)


def f(my_df):
    return my_df.Marks.max()


df.groupby("Department").apply(f)

输出:


在 Python Pandas 中使用 transform() 方法

在下一个示例中,我们通过使用 groupby() 方法将每个部门分组,将另一列 Mean_Marks 合并到 DataFrame 中,然后使用 mean 关键字计算两个部门的平均值。

输出显示两个部门的平均分数。

在这里,transform() 方法在单个列上运行,在我们的例子中是 Marks

# Python 3.x
import pandas as pd

df = pd.read_csv("Student.csv")
display(df)
df["Mean_Marks"] = df.groupby("Department")["Marks"].transform("mean")
display(df)

输出:

上一篇:Pandas Vlookup

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas Vlookup

发布时间:2024/04/23 浏览次数:83 分类:Python

本教程演示如何在 Python 中使用 Pandas 通过不同的技术合并两个不同的表。

Pandas 中的散点矩阵

发布时间:2024/04/23 浏览次数:105 分类:Python

本教程演示了如何使用 scatter_matrix 函数在 Pandas 中创建散点图。

Pandas 中的 GroupBy 应用

发布时间:2024/04/23 浏览次数:181 分类:Python

本文演示了什么是 GroupBy-Apply 行为以及如何在 Pandas 中按数据分组和应用函数。

如何从 Pandas 的日期时间列中提取月份和年份

发布时间:2024/04/23 浏览次数:124 分类:Python

我们可以分别使用 dt.year()和 dt.month()方法从 Datetime 列中提取出年和蛾。我们还可以使用 pandas.DatetimeIndex.month 以及 pandas.DatetimeIndex.year 和 strftime()方法提取年份和月份。

Pandas 填充 NaN 值

发布时间:2024/04/23 浏览次数:186 分类:Python

本教程解释了我们如何使用 DataFrame.fillna()方法用指定的值填充 NaN 值。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便