CodeGym /Java 课程 /Python SELF ZH /数据分组与计算总和与平均值

数据分组与计算总和与平均值

Python SELF ZH
第 28 级 , 课程 0
可用

1. 数据分组简介

数据分组的原理

在现实生活中,我们经常根据某些特征对对象进行分组:书跟书放一起,蔬菜跟蔬菜放一起,人跟人群放一起(你懂的)。编程中也是类似。 数据分组可以帮助我们将大量数据划分成更小、更易管理的部分,从而对其进行分析。

在 pandas 中,这可以通过 groupby 方法实现,它可以将数据按组进行划分,并对每组执行不同的操作。例如,你可以按商店部门对销售数据进行分组,然后计算每个部门的总收入。

以下是一个示例代码:

Python

import pandas as pd

# 创建一个包含销售数据的 DataFrame
data = {'部门': ['食品', '科技', '食品', '书籍', '科技'],
        '收入': [100, 200, 150, 50, 300]}

df = pd.DataFrame(data)

# 按部门分组数据并计算总收入
group = df.groupby('部门')['收入'].sum()
print(group)

分组的使用场景

分组在需要比较不同类别的数据时特别有用。例如,如果你在 HR 工作,想知道不同部门的平均工资;或者作为市场营销人员,想了解每种产品在每个月的销售额是否达到最高。 使用 pandas 的分组功能可以显著简化这些任务。

2. 聚合函数计算

聚合函数简介

聚合函数是一种特殊的函数,用于对数据组进行操作并返回单个值。 最常见的包括 sum(总和)、mean(平均值)和 count(元素个数)。它们可以将大量信息汇总为更简单易懂的指标。

如何使用聚合函数

我们已经在前面的例子中看到了如何计算总和。现在让我们看看如何计算每个部门的平均收入和销售数量。

Python

# 按部门计算平均收入
平均 = df.groupby('部门')['收入'].mean()
print(平均)

# 计算每个部门的销售次数
次数 = df.groupby('部门')['收入'].count()
print(次数)

聚合计算场景

假如你有一个用户访问网站的记录,想知道每周每天平均有多少人访问网站。这是分组和使用 mean 函数的一个经典应用场景。

Python

data = {'星期': ['周一', '周二', '周三', '周四', '周五', '周三', '周二'],
        '访问量': [120, 150, 170, 160, 180, 300, 220]}

df = pd.DataFrame(data)

# 按星期计算平均访问量
平均访问量 = df.groupby('星期')['访问量'].mean()
print(平均访问量)

3. 实际操作

数据分组和聚合计算任务

假设你有一个有关销售数据的数组。任务是:按类别对其分组,计算总销售额、平均订单金额和每个类别的订单数量。 这可以帮助你了解哪些类别的商品带来了最多的利润,以及哪些类别有潜在的“金矿”。

Python

data = {
    '类别': ['电子产品', '服装', '电子产品', '书籍', '书籍', '服装'],
    '订单金额': [250, 100, 150, 200, 500, 300]
}

df = pd.DataFrame(data)

# 按类别计算总销售额
总销售额 = df.groupby('类别')['订单金额'].sum()
print(总销售额)

# 按类别计算平均订单金额
平均金额 = df.groupby('类别')['订单金额'].mean()
print(平均金额)

# 按类别计算订单数量
订单数量 = df.groupby('类别')['订单金额'].count()
print(订单数量)

讨论分组结果与数据分析

完成分组和聚合任务后,对数据进行分析非常有帮助。例如,可能会发现“书籍”类别的总订单额最高,因为有一笔大订单; 或者发现“服装”类别的订单数量最多,但平均订单金额低于“电子产品”。

这种分析可以帮助做出合理的商业决策,例如,专注于提高订单数量多但平均金额较低的类别的单次订单金额。

4. 错误与注意事项

使用分组功能时,最常见的错误之一是忘记在使用聚合函数时加上圆括号。例如,写成 df.groupby('类别').sum() 而不是 df.groupby('类别')['订单金额'].sum()。 此外,数据缺失时可能会出现问题。 Pandas 提供方便处理缺失数据的方法,例如 fillna(),它允许用指定值替换缺失数据,从而避免计算结果的失真。

此外,还需要确保数据类型是正确的。有时包含数字的列可能会被读取为字符串,在尝试对这些数据进行聚合时会导致错误。

如果你想深入研究 pandas 和分组方法,请参考 pandas 官方文档 来了解更多详细内容和示例。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION