2

让我们假设我们有一个GroupBy对象,它是通过groupby应用于 a 的操作而获得的DataFrame

grouped = data_frame.groupy(['col_1', 'col_2'])

如果我们指定 GroupBy 对象中的值应该如何组合以获得单个值,我们可以生成一个新的数据框。例如:

grouped.agg('col_3':sum, 'col_4':min, 'col_5':user_defined_function)

在上面的示例中,我们使用了将列表(或更准确地说,系列)作为输入并返回单个值作为输出的函数。这很好,但我需要的是使用两个系列作为输入。例如,我想从中获取值col_3col_4使用它们来生成单个值。

例如,我可能想找出 和 中对应值之间的最大绝对差是col_3多少col_4

有没有办法在熊猫中做到这一点?

4

1 回答 1

3

如果您没有为每列指定一个函数,则所有列都将传递给该函数(适用于 apply 和 agg)。所以:

data_frame.groupy(['col_1', 'col_2']).apply(lambda x: np.max(np.abs(x['col_3'] - x['col_4'])))

这给出了每组 col_3 和 col_4 之间的绝对最大差异。

于 2013-04-29T13:22:28.910 回答