python - Pandas Dataframe 中的高效搜索
问题描述
我正在尝试在熊猫数据框中搜索关键字。目前我正在使用 isin() 方法搜索整个数据帧,它工作正常,但在处理超过 1 Gb 的大数据集时需要很多时间。
我要解决的问题是:
假设我有一个数据集 df :
Player_Name Country Type_of_sports
Messi Argentina Football
Ronaldo Portugal Football
Kohli India Cricket
Federer Switzerland Tennis
列名 - Player_Name、Country、Type_of_sports
因此,如果用户输入查询,例如:
query = 'Which country is Messi from ?'
所以我在这个查询中的关键字将是Messi
.
所以现在我需要Messi
在我的整个数据框中搜索。
那么是否有任何有效的方法可以在不使用 for 循环或 isin() 方法的情况下在数据框中搜索和查找此类数据值?
注意 - 查询并不总是包含确切的列名。
例如 - new_query- '玩家名称football
'。
Football
现在在这里我需要在整个数据框中搜索关键字。是否有任何方法可以在Football
不使用 for 循环或 isin() 函数的情况下进行搜索。
谢谢
解决方案
为了有效地回答该查询,您可以使用以下内容:
df.loc[df.Player_Name == 'Messi', 'Country']
'Argentina'
如果该列中不存在给定的玩家名称,则将没有匹配项,并且将返回一个空系列。
推荐阅读
- python - 如果用户输入 x 它会停止,我该怎么写
- ios - 转换为 HLS 时,Swift ReplayKit AVAssetWriter 视频音频不同步
- javascript - 使用 D3 创建动画脉冲圆
- time-complexity - 下面函数的时间复杂度是多少?
- uistoryboard - 如何将 @IBSegueAction 与 UITabBarController 一起使用?
- r - Crontab 中的 Rscript 未在 Ubuntu Server 18.04 中运行
- c++ - 直接渲染到 WASAPI 时,两个流之一没有音频输出
- python - Selenium/Scrapy - 为某些元素返回 null
- macros - lisp 宏来构建表达式列表及其评估
- forms - 未收到电子邮件附件 magento 表单