python - 为什么 pandas 的 apply 方法没有一个 axis=None 选项来将函数应用于整个数据框?
问题描述
pandas API(恕我直言/YMMV)似乎存在差距,因为无法链接对整个数据帧进行操作的操作(以流畅的方式)。
例如a.op1.op2.op3...
apply 方法接受一个函数和一个轴参数,并将函数相应地应用于行或列。我认为缺少的是一个轴=无,这意味着该函数适用于整个数据帧。这将允许操作,包括结构修改(例如删除行、列、重命名、索引更改等)以这种流畅的样式链接。
有一个 hack 可以做到这一点。
如果 a 是一个数据框,那么...
a.groupby(lambda _:0).apply(lambda x:...
...意味着应用的 lambda 中的 x 被连续设置为 groupby 的每个组,但只创建了一个组,因此应用于该组的函数有效地成为应用于整个数据帧的函数。然而,这有点笨拙,并且有一个缺点是有时groupby 会在索引中创建一个新级别(但有时它不会,这很难预测)。
我是否错过了 API 中的一个方法,或者是否有一种不那么笨拙的方法来实现这一点?
解决方案
看起来我一直都是“管道”方法,它接受一个函数并将其直接应用于 DataFrame(或 Series、GroupBy)。
推荐阅读
- go - Golang - 使用 PuerkitoBio/goquery 分别为每个子元素查找文本
- java - 如何在 java11 中获取 TotalSafePointTime
- android - 在自定义适配器中隐藏软键盘
- python - 创建批处理并将功能应用于python列表的内存高效且最快的方法
- sql - plsql中的函数
- reactjs - 类型错误:无法读取 undefined1 的属性“地图”
- java - 如何使用多线程来加速我的 SHA-1 破解程序?
- python - 访问列表中的数组,该数组是字典中的值?
- python - 你可以使用参数转义字符并执行吗?
- c++ - 无论如何使用矩形在 sfml 中创建动画