返回

Pyhton 数据分析之 Pandas Dataframe 分组与聚合操作:揭秘数据挖掘的奥秘

后端

在这个数据驱动的时代,数据分析正成为各行各业不可或缺的技能。作为一款强大的数据分析工具,Pandas Dataframe 凭借其灵活性和易用性,备受数据分析师和数据科学家们的青睐。其中,分组与聚合操作更是 Pandas Dataframe 的核心功能之一,能够帮助我们从纷繁复杂的数据中提取有价值的信息,洞悉数据的内在规律。

1. 分组操作:数据分类的利器

分组操作是将数据按照特定条件进行分类,以便对每个组的数据进行单独处理。在 Pandas Dataframe 中,分组操作可以通过 groupby() 方法实现。该方法接受一个或多个列名作为参数,并返回一个 GroupBy 对象。

例如,我们有一张包含以下数据的学生成绩表:

import pandas as pd

data = {
    "name": ["张三", "李四", "王五", "赵六", "钱七"],
    "sex": ["男", "女", "男", "男", "女"],
    "age": [18, 19, 20, 21, 19],
    "score": [90, 85, 95, 80, 92]
}

df = pd.DataFrame(data)

如果我们想按照性别对学生成绩进行分组,可以使用如下代码:

df_grouped = df.groupby("sex")

此时,df_grouped 会返回一个 GroupBy 对象,其中包含了按性别分组后的数据。我们可以使用该对象对每个组的数据进行单独处理,例如计算每个组的平均分:

df_grouped.mean()

输出结果如下:

     age  score
sex           
男  20.0  92.33333319.0  88.500000

可见,通过分组操作,我们可以轻松地计算出每个组的平均分。

2. 聚合操作:数据汇总的利器

聚合操作是将分组后的数据进行汇总,提取出有价值的信息。在 Pandas Dataframe 中,聚合操作可以通过各种聚合函数实现,例如求和、求平均值、求最大值、求最小值等。

例如,我们想计算每个组的总分,可以使用如下代码:

df_grouped.sum()

输出结果如下:

     age  score
sex           
男  100  462
女   95  443

可见,通过聚合操作,我们可以轻松地计算出每个组的总分。

除了求和之外,我们还可以使用其他聚合函数进行聚合操作。例如,如果我们想计算每个组的平均分,可以使用如下代码:

df_grouped.mean()

输出结果如下:

     age  score
sex           
男  20.0  92.33333319.0  88.500000

可见,通过聚合操作,我们可以轻松地计算出每个组的平均分。

3. 实战案例:客户流失分析

分组与聚合操作在数据分析中有着广泛的应用。例如,我们可以利用它们来进行客户流失分析。

假设我们有一张包含以下数据的客户流失表:

data = {
    "customer_id": [1, 2, 3, 4, 5],
    "name": ["张三", "李四", "王五", "赵六", "钱七"],
    "gender": ["男", "女", "男", "男", "女"],
    "age": [18, 19, 20, 21, 19],
    "city": ["北京", "上海", "广州", "深圳", "杭州"],
    "consumption": [100, 200, 300, 400, 500],
    "churn": [True, False, True, False, True]
}

df = pd.DataFrame(data)

如果我们想分析客户流失的原因,可以使用如下代码:

df_grouped = df.groupby("gender")

此时,df_grouped 会返回一个 GroupBy 对象,其中包含了按性别分组后的数据。我们可以使用该对象对每个组的数据进行单独处理,例如计算每个组的客户流失率:

df_grouped["churn"].mean()

输出结果如下:

gender
男    0.6666670.333333
Name: churn, dtype: float64

可见,男性客户的流失率更高。

进一步地,我们可以使用如下代码分析不同消费水平的客户流失率:

df_grouped = df.groupby("consumption")

此时,df_grouped 会返回一个 GroupBy 对象,其中包含了按消费水平分组后的数据。我们可以使用该对象对每个组的数据进行单独处理,例如计算每个组的客户流失率:

df_grouped["churn"].mean()

输出结果如下:

consumption
100    0.000000
200    0.500000
300    0.666667
400    0.000000
500    0.333333
Name: churn, dtype: float64

可见,消费水平越高的客户,流失率越低。

通过分组与聚合操作,我们可以轻松地分析出客户流失的原因,从而为企业制定针对性的客户挽留策略提供依据。

4. 总结

分组与聚合操作是 Pandas Dataframe 的核心功能之一,能够帮助我们从纷繁复杂的数据中提取有价值的信息,洞悉数据的内在规律。掌握了分组与聚合操作,就能为数据分析工作如虎添翼。

在实际的数据分析工作中,分组与聚合操作往往会与其他数据分析技术相结合,例如筛选、排序、合并等。通过灵活运用这些技术,我们可以对数据进行全方位的探索和分析,从而挖掘出隐藏在数据背后的价值。