首页 > 解决方案 > 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() 函数的情况下进行搜索。

谢谢

标签: pythonpandasdataframe

解决方案


为了有效地回答该查询,您可以使用以下内容:

df.loc[df.Player_Name == 'Messi', 'Country']
'Argentina'

如果该列中不存在给定的玩家名称,则将没有匹配项,并且将返回一个空系列。


推荐阅读