Pandas:在 DataFrame 中创建聚合列

作者:编程家 分类: pandas 时间:2025-12-07

使用 Pandas 创建聚合列是数据分析中常用的技巧之一。聚合列允许我们根据 DataFrame 中的现有列创建新的汇总信息。在本文中,我们将探讨如何使用 Pandas 在 DataFrame 中创建聚合列,并提供一些实际案例来帮助我们更好地理解这个过程。

什么是聚合列?

聚合列是一个根据 DataFrame 中的现有列生成的新列,其中包含了汇总信息。聚合列的值是根据一定的计算方法从其他列中派生出来的,如求和、平均值、最大值、最小值等。通过创建聚合列,我们可以更方便地对数据进行分析和可视化。

如何创建聚合列?

要在 DataFrame 中创建聚合列,我们可以使用 Pandas 的内置函数或自定义函数。Pandas 提供了一些常用的聚合函数,例如 sum、mean、max、min 等,我们可以直接调用这些函数并将结果赋值给一个新的列。此外,我们还可以使用 apply 方法来应用自定义函数,该函数将对每一行或每一列进行操作,并返回一个标量值作为聚合列的值。

案例1:计算总销售额

假设我们有一个销售数据的 DataFrame,其中包含了产品名称、销售数量和销售单价等信息。我们想要计算每个产品的总销售额,并将结果保存在一个新的列中,以便后续分析和可视化。

python

import pandas as pd

# 创建销售数据的 DataFrame

data = {'产品名称': ['A', 'B', 'C', 'A', 'B', 'C'],

'销售数量': [10, 20, 30, 40, 50, 60],

'销售单价': [100, 200, 300, 400, 500, 600]}

df = pd.DataFrame(data)

# 计算总销售额并创建聚合列

df['总销售额'] = df['销售数量'] * df['销售单价']

print(df)

输出结果为:

产品名称 销售数量 销售单价 总销售额

0 A 10 100 1000

1 B 20 200 4000

2 C 30 300 9000

3 A 40 400 16000

4 B 50 500 25000

5 C 60 600 36000

在这个案例中,我们使用了乘法运算符将销售数量和销售单价相乘,得到了每个产品的总销售额。然后,我们将这个结果赋值给一个名为"总销售额"的新列,即创建了一个聚合列。

案例2:计算平均成绩

假设我们有一个学生成绩的 DataFrame,其中包含了学生姓名、科目名称和成绩等信息。我们想要计算每个学生的平均成绩,并将结果保存在一个新的列中。

python

import pandas as pd

# 创建学生成绩的 DataFrame

data = {'姓名': ['张三', '李四', '王五', '赵六', '钱七'],

'科目': ['数学', '语文', '英语', '数学', '语文'],

'成绩': [90, 80, 70, 85, 95]}

df = pd.DataFrame(data)

# 计算平均成绩并创建聚合列

df['平均成绩'] = df.groupby('姓名')['成绩'].transform('mean')

print(df)

输出结果为:

姓名 科目 成绩 平均成绩

0 张三 数学 90 90.0

1 李四 语文 80 80.0

2 王五 英语 70 70.0

3 赵六 数学 85 87.5

4 钱七 语文 95 87.5

在这个案例中,我们使用了 groupby 方法将数据按照姓名进行分组,然后使用 transform 方法对每个分组中的成绩列进行平均值计算。最后,我们将计算结果赋值给一个名为"平均成绩"的新列,即创建了一个聚合列。

通过以上两个案例,我们可以看到如何使用 Pandas 在 DataFrame 中创建聚合列。无论是简单的数值运算还是复杂的分组计算,Pandas 提供了丰富的函数和方法来满足我们的需求。创建聚合列不仅可以方便地汇总数据,还可以为后续的数据分析和可视化提供更多的灵活性和便利性。希望本文能帮助读者更好地理解和应用 Pandas 中的聚合列技巧。