Pyhton 数据分析之 Pandas Dataframe 分组与聚合操作:揭秘数据挖掘的奥秘
2023-10-31 13:15:56
在这个数据驱动的时代,数据分析正成为各行各业不可或缺的技能。作为一款强大的数据分析工具,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.333333
女 19.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.333333
女 19.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.666667
女 0.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 的核心功能之一,能够帮助我们从纷繁复杂的数据中提取有价值的信息,洞悉数据的内在规律。掌握了分组与聚合操作,就能为数据分析工作如虎添翼。
在实际的数据分析工作中,分组与聚合操作往往会与其他数据分析技术相结合,例如筛选、排序、合并等。通过灵活运用这些技术,我们可以对数据进行全方位的探索和分析,从而挖掘出隐藏在数据背后的价值。