网站首页 > 技术文章 正文
在Python数据分析领域,Pandas库中的GroupBy功能提供了强大的数据分组和聚合能力。通过GroupBy,我们可以根据一个或多个列对DataFrame进行分割、应用函数并重新组合结果,从而实现数据集的深入分析和统计。本文将详细介绍如何使用Pandas GroupBy进行分组统计,并结合实际代码示例展示其应用场景。
GroupBy基础操作
假设我们有一个包含用户购买记录的数据集:
import pandas as pd
# 创建一个简单的DataFrame
data = {'User': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob', 'Charlie'],
'Product': ['Apple', 'Banana', 'Orange', 'Apple', 'Banana', 'Orange'],
'Quantity': [3, 2, 1, 4, 5, 3],
'Price': [0.5, 0.25, 0.75, 0.5, 0.25, 0.75]}
df = pd.DataFrame(data)
print(df)
- 按单一列分组
grouped = df.groupby('User')
# 计算每个用户的总购买量(Quantity之和)
total_quantity = grouped['Quantity'].sum()
print(total_quantity)
# 计算每个用户的总消费金额(Quantity * Price之和)
total_spending = grouped[['Quantity', 'Price']].sum().prod(axis=1)
print(total_spending)
- 按多个列分组
grouped_multi = df.groupby(['User', 'Product'])
# 每个用户对每种产品的购买总量
product_purchases = grouped_multi['Quantity'].sum()
print(product_purchases)
更复杂的分组统计操作
1. 应用自定义函数
# 计算每个用户购买产品种类的数量
unique_products_per_user = df.groupby('User')['Product'].nunique()
print(unique_products_per_user)
2. 使用agg方法进行多重聚合
# 对每个用户计算购买量的平均值和总和
aggregated_stats = df.groupby('User')['Quantity'].agg(['mean', 'sum'])
print(aggregated_stats)
3. 分层索引与透视表
# 创建一个带有层次索引的分组统计结果
multi_index_grouped = df.groupby(['User', 'Product']).sum()
# 将多级索引的结果转换为透视表形式
pivot_table = multi_index_grouped.unstack()
print(pivot_table)
进阶应用及注意事项
- 分组后的过滤操作:可以结合filter()方法,在分组后对满足特定条件的组进行筛选。
- 处理缺失值:在执行分组操作前,应先对数据进行清洗,处理缺失值,以避免影响分组结果。
- 性能优化:对于大型数据集,可利用groupby()配合apply()函数分块处理数据,提高运算效率。
总结
Pandas GroupBy功能是数据分析过程中的重要工具,它能够帮助我们从不同维度深入理解数据,发现隐藏的规律和趋势。熟练掌握GroupBy的各种用法,将极大地提升Python Web开发中数据处理的能力,特别是在数据挖掘、报表生成以及机器学习特征工程等场景中发挥关键作用。
关注我,手把手带你快速入门 AI 机器学习编程!
猜你喜欢
- 2025-06-28 Python数据分析实战-dataframe分组提取每一组的首条记录
- 2025-06-28 如何使用Python将多个excel文件数据快速汇总?
- 2025-06-28 「Python数据分析」Pandas进阶,使用groupby分组聚合数据(二)
- 2025-06-28 还在熬夜合并30个Excel 3个案例,带你用Python玩转Excel高阶操作
- 2025-06-28 python数据分析实战:pandas分组聚合-自定义聚合函数
- 2025-06-28 Python 知识点 #31 - 分组和聚(python分层聚类)
- 2025-06-28 人生苦短,自学 python——pandas 的分组操作
- 2025-06-28 利用Python进行数据分组/数据透视表
- 2025-06-28 Python 之 Pandas:数据分组聚合统计的魔法秘籍
- 2025-06-28 Python 数据分析——利用Pandas进行分组统计
- 272℃Python短文,Python中的嵌套条件语句(六)
- 271℃python笔记:for循环嵌套。end=""的作用,图形打印
- 269℃PythonNet:实现Python与.Net代码相互调用!
- 264℃Python实现字符串小写转大写并写入文件
- 263℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 122℃原来2025是完美的平方年,一起探索六种平方的算吧
- 104℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 99℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
-
- Python数据分析实战-dataframe分组提取每一组的首条记录
- 如何使用Python将多个excel文件数据快速汇总?
- 「Python数据分析」Pandas进阶,使用groupby分组聚合数据(二)
- 还在熬夜合并30个Excel 3个案例,带你用Python玩转Excel高阶操作
- python数据分析实战:pandas分组聚合-自定义聚合函数
- Python 知识点 #31 - 分组和聚(python分层聚类)
- 人生苦短,自学 python——pandas 的分组操作
- 利用Python进行数据分组/数据透视表
- 超实用!用Python快速实现数据分组统计与透视表
- Python 之 Pandas:数据分组聚合统计的魔法秘籍
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)