The*_*ome 5 python dataframe pandas
查询 a 的正确或最佳方法是什么pandas DataFrame?
这取决于用例,还是你可以说“总是使用 .query()”或“从不使用 .query()”?
\n我主要关心的是代码的稳健性或防错性,但性能当然也很重要。
\n在这篇文章中,查询方法被认为是稳健的并且比其他方法更受青睐,您同意吗?我应该始终使用 .query() 吗?
\n\n\npandas 中的 DataFrame.query() 函数是过滤 pandas DataFrame 对象行的强大方法之一。
\n最好使用 DataFrame.query() 函数来选择或过滤 pandas DataFrame 对象的行,而不是传统和常用的索引方法。
\n
我最近遇到了 .query() 方法,并开始经常使用它,以方便起见,因为我认为这是正确执行此操作的方法。
\n然后我读了这两篇文章(内容对于这个问题来说不是必需的,我只是想展示是什么让我思考这个问题):
\n\n和
\n如何处理Pandas中的SettingWithCopyWarning?
\n在帖子中SettingWithCopyWarning提到了 .loc 和 .at 等不同方法,但没有提到 .query()。这让我想知道 .query() 是否真的被使用了。(我想我开始一个新问题而不是在评论中发布这个问题)。它可能也与那个特定问题无关,但它仍然让我想知道。
关于“apply - 便利函数...”的帖子让我想知道 .query() 是否也是您永远不需要的便利函数。
\n该文档提到了以下用例:
\n\n\nquery() 用例
\nquery() 的一个用例是当您拥有 DataFrame 对象的集合,且这些对象的列名称(或索引级别/名称)的子集位于 common 中时。您可以将相同的查询传递给两个框架,而无需\n指定您\xe2\x80\x99有兴趣查询哪个框架
\n
编辑:修复了问题的链接.apply()。
小智 3
我认为这个问题没有一个很难回答的问题。要回答您是否应该始终使用查询的问题,简单的答案是否定的。
查询方法eval在幕后使用,这使得它的性能较差。那么什么时候应该使用查询呢?如果您尝试过滤的条件非常具体并且涉及多个列,则应该使用查询。虽然最熊猫式的过滤方式是使用loc,但有时 loc 后的链接会失控。
决定使用查询方法应该基于可读性和性能。如果您一遍又一遍地使用 loc,您可能希望使用简单的查询字符串来修改它。但是,如果切换使您的代码性能降低,并且您正在处理关键任务数据,则您应该牺牲一点可读性而不是性能。
| 归档时间: |
|
| 查看次数: |
2318 次 |
| 最近记录: |