Pandas groupby + 变换和多列

pandas

1个回答

写回答

Wjxxlyw

2025-07-08 22:30

+ 关注

Pandas
Pandas

Pandas groupby + 变换和多列

在数据分析和数据处理中,经常需要对数据进行分组并对每个组进行相应的变换。Pandas库中的groupby函数提供了一种方便的方法来实现这个目标。除了基本的分组和聚合操作之外,Pandas还提供了一种灵活的方式来进行变换操作,并且还可以同时对多列进行操作。本文将介绍如何使用Pandas的groupby函数进行分组、变换和多列操作,并提供相应的案例代码。

案例代码:

首先,我们需要导入Pandas库并读取一个示例数据集。假设我们有一个销售数据集,其中包含了销售人员的姓名、产品类别和销售额等信息。我们想要对销售人员进行分组,并计算每个人员的销售额占比。

Python

import Pandas as pd

# 读取数据集

data = pd.read_csv("sales_data.csv")

# 对销售人员进行分组,并计算每个人员的销售额占比

data["Sales Percentage"] = data.groupby("Salesperson")["Sales"].transform(lambda x: x / x.sum() * 100)

在上述代码中,我们首先使用Pandas的read_csv函数读取了一个名为"sales_data.csv"的数据集。然后,我们使用groupby函数对"Salesperson"列进行分组操作,并使用transform函数对每个分组进行变换。在这个例子中,我们使用了一个匿名函数来计算每个分组中每个销售人员的销售额占比。最后,我们将计算得到的销售额占比保存到"Sales Percentage"列中。

多列操作:

除了对单列进行变换之外,Pandas的groupby函数还可以同时对多列进行操作。下面是一个示例代码,假设我们想要计算每个销售人员在每个产品类别下的销售额占比。

Python

import Pandas as pd

# 读取数据集

data = pd.read_csv("sales_data.csv")

# 对销售人员和产品类别进行分组,并计算每个人员在每个类别下的销售额占比

data["Sales Percentage"] = data.groupby(["Salesperson", "Category"])["Sales"].transform(lambda x: x / x.sum() * 100)

在上述代码中,我们使用了一个包含两个列名的列表["Salesperson", "Category"]来指定需要分组的列。然后,我们使用transform函数对每个分组进行变换,并计算每个销售人员在每个产品类别下的销售额占比。最后,我们将计算得到的销售额占比保存到"Sales Percentage"列中。

:

本文介绍了如何使用Pandas的groupby函数进行分组、变换和多列操作。通过使用transform函数,我们可以对每个分组进行相应的变换操作,并将结果保存到新的列中。同时,我们还可以使用多列进行操作,以实现更加灵活的数据处理需求。Pandas的groupby函数提供了一种简单而强大的方法来处理分组和变换操作,可以极大地提高数据分析和数据处理的效率。

希望本文对您学习和使用Pandas库有所帮助,谢谢阅读!

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号