在Pandas中,apply和transform都可以用来对分组数据执行操作。但是,这两种方法之间存在一些关键差异。
输入类型
输出类型
Transformation
示例
考虑以下 DataFrame:
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'], 'C': randn(8), 'D': randn(8)})
使用 apply 从每个组中的 D 列中减去 C 列:
df.groupby('A').apply(lambda x: (x['C'] - x['D']))
要从每组内的 D 列中减去 C 列,请使用转换:
df.groupby('A').transform(lambda x: (x['C'] - x['D']).mean())
请注意,传递给transform的lambda函数返回C和D之间差异的平均值,从而产生与原始DataFrame具有相同形状的转换列。
何时使用 apply 与 transform:
以上是何时使用 Pandas apply 与transform 进行分组数据操作?的详细内容。更多信息请关注PHP中文网其他相关文章!