Python数据分析与应用
第5章 数据聚合与分组运算
本章共 25 题,可按题型筛选。
在数据分析的分组与聚合流程中,正确的执行顺序是:
当对 DataFrame 对象调用 groupby(by='key') 方法后,其返回值的类型通常是:
在 groupby() 方法中,参数 axis 的默认取值为 0,这代表:
如果想在分组聚合后的结果中,不让分组标签成为行索引,应如何设置 groupby() 的参 数?
关于 agg() 方法,以下描述错误的是:
如果需要对分组后的数据进行转换操作,且希望保持输出对象的形状与原对象一致,应优 先使用:
在使用字典作为 groupby(by=mapping_dict) 的拆分标准时,字典的“键”映射的是原对象 的:
当使用函数作为分组键时(例如 df.groupby(by=len)),该函数会被调用在:
在执行聚合运算(如 mean())时,如果分组中存在缺失值 $NaN$,Pandas 的默认处理方 式是:
若想通过 GroupBy 对象直接获取名为 'Team_A' 的特定分组数据,应调用:
分组与聚合的流程中,“拆分”阶段是根据一定的标准将数据拆分为若干个 ______。
若 groupby() 方法的调用方是一个 Series 类对象,则返回值的类型是 ______。
在 groupby 方法中,参数 ______ 决定了是否对分组标签进行排序,其默认值为 True。
GroupBy 对象是一个 ______ 对象,意味着我们可以使用 for 语句对其进行遍历。
通过访问 GroupBy 对象的 ______ 属性,可以得到一个由分组名称作为键、对应索引列表 作为值的字典。
在 agg() 方法中,若要给应用的函数重命名,可以使用元组格式:(______, 函数名)。
极差(Range)是机器学习中常用的离散程度指标,其计算公式为 $R = ______ - ______$。
transform() 方法在处理包含非数值列的原始对象时,会 ______ 这些列,从而导致新对象 的形状可能发生变化。
______ 方法是分组操作中最灵活的方法,它既可以替代聚合,也可以实现复杂的转换逻 辑。
体质指数(BMI)是衡量人体肥胖程度的重要指标,其数学逻辑通常被定义为:$BMI = \frac{体重(kg)}{身高(m)^2}$,在案例分析中常用于构建新特征。
请简述 transform() 方法与 agg() 方法在数据预处理中的核心区别。
假设你有一个包含学生姓名索引的 DataFrame,如果调用 df.groupby(by=len),请解释其 背后的分组逻辑及意义。
在机器学习模型训练前,我们经常需要对特征进行“组内标准化”(Group-wise Normalization)。请推导如何利用 $transform$ 思想将某特征 $x$ 转换为均值为 0、方差 为 1 的标准形式(写出公式)。
为什么说 apply() 方法是 groupby 运算中的“万能工具”?请列举至少两个它能胜任而 agg() 较难处理的场景。
任务:多指标特征提取 现有某电商销售数据 df,包含列:category (品类), sales (销售额), quantity (数量)。请编写代码 实现:按 category 分组,计算销售额的“总和”与“平均值”,同时计算数量的“最大值”。要求: 1. 使用 agg 方法。 2. 将生成的列名分别重命名为 total_sales, avg_sales, max_quantity。 任务:缺失值均值填充策略 在机器学习预处理中,直接用全局均值填充缺失值可能存在偏差。请利用 transform 方法编写一 个函数,实现:对 DataFrame 中的 score 列按 class_id 分组,并用各组内部的均值填充该组内 的缺失值。