迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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)

输出:

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

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便