为什么pandas apply方法没有使用axis = None选项将函数应用于整个数据框?

时间:2018-04-26 12:57:31

标签: python pandas dataframe

pandas API(IMHO / YMMV)似乎存在差距,因为没有办法在整个数据帧上进行链接操作(以流畅的方式)。

e.g。 a.op1.op2.op3...

apply方法接受一个函数和一个axis参数,并相应地将该函数应用于行或列。我认为缺少的是轴=无,这意味着该函数适用于整个数据帧。然后,这将允许操作,包括结构修改(例如,删除行,列,重命名,索引更改等)以如此流畅的方式链接。

有一个黑客可以做到这一点。

如果a是数据帧,那么......

a.groupby(lambda _:0).apply(lambda x:...

...表示应用的lambda中的x连续设置为groupby的每个组,但只创建了一个组,因此应用于该组的函数实际上成为应用于整个数据帧的函数。然而,这有点笨拙并且有一个缺点是 有时 groupby在索引中创建了一个新级别(但 有时 < / strong>它没有,这很难预测。)

我是否错过了API中的方法,或者是否有一种不那么笨重的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

看起来我毕竟是&#34;管道&#34;获取函数并将其直接应用于DataFrame(或Series,GroupBy)的方法。

pandas.DataFrame.pipe