transform 方法返回一个对象,该对象与被分组的对象索引相同(相同大小)
注意事项:
- 返回与组块大小相同或可广播到组块大小的结果(例如,标量,grouped.transform(lambda x: x.iloc[-1]))
- 在组块上逐列操作。 使用 chunk.apply 将转换应用于第一个组块。
- 不对组块执行就地操作。 组块应该被视为不可变的,对组块的更改可能会产生意想不到的结果。 例如,使用fillna 时,inplace 必须为False (grouped.transform(lambda x: x.fillna(inplace=False)))
- (可选)对整个组块进行操作。 如果支持,则使用从第二个块开始的快速路径。
1. 假设我们希望对每个组内的数据进行标准化
原来的方法: 使用transform方法:
2. 具有较低维度输出的transform函数以匹配输入数组的形状被广播
3. 重采样的语法
在 groupby 级别上使用重采样、扩展或滚动操作过去需要应用辅助函数。 但是,现在可以在 groupbys 上使用 resample()、expanding() 和 rollback() 方法。
下面的示例将根据 A 列的组对 B 列的样本应用rolling()方法
expand() 方法将为每个特定组的所有成员累积给定的操作(示例中的 sum())
假设您想使用 resample() 方法获取每个数据group组中的每日频率,并希望使用 ffill() 方法完成缺失值。



