咨询pandas中pd.groupby()的应用场景、用法及示例
聊聊pandas的groupby():应用场景与用法
一、核心应用场景
- 分类统计分析:把数据按指定类别拆分,统计每组的基础信息——比如你示例里按电影公司(Studios)分组,统计每家公司有票房数据的电影数量;还能延伸到计算每家公司的总票房、平均评分等。
- 多维度聚合计算:不止单类别分组,还能按多列(比如
["Year", "Studios"])分组,分析不同年份各电影公司的票房表现,挖掘更细粒度的规律。 - 分组数据预处理:针对不同分组做差异化清洗——比如某类电影的票房缺失值用该类的均值填充,另一类用中位数,不用全表统一处理。
- 分组筛选:比如筛选出总票房超过10亿的电影公司,先分组求和再过滤。
二、基础使用方法(结合你的示例)
先提一句:你示例里有个小笔误——变量名是小写的studios,后面写成了大写的Studios,运行时会报错,修正后再看逻辑:
1. 创建分组对象
用df.groupby(分组列名)创建分组容器,这一步只是标记好分组规则,不会立刻计算(惰性求值):
studios = movies.groupby("Studios")
2. 选择目标列
指定要对分组后的哪一列操作,比如只关注票房(Gross)列:
studios["Gross"]
也可以选多列,比如同时看票房和评分:studios[["Gross", "Rating"]]
3. 应用聚合函数
给选中的列加聚合函数,完成计算:
count():统计每组非缺失值的数量(你的示例就是用这个统计每家公司有票房数据的电影数)sum():计算每组总和,比如studios["Gross"].sum()就是每家公司的总票房mean():求每组平均值,比如每家公司电影的平均票房- 还能用
agg()一次获取多个指标:studios["Gross"].agg(["sum", "mean", "count"])
4. 查看结果
用head()查看前几行结果,避免输出过多数据:
studios["Gross"].count().head()
内容的提问来源于stack exchange,提问作者VIJITH KUMAR
相关产品推荐
相关产品推荐

