简体   繁体   English

使用Lambda函数进行精确的字符串搜索

[英]Exact string search using lambda function

How can one search for exact string using a lambda function? 如何使用Lambda函数搜索确切的字符串? The data frame looks as follows: 数据框如下所示:

A  B     
10 Mini 

20 Mini Van

15 Mini

13 Mini Bus

Desired results 所需结果

A   B

10  Mini

15  Mini

I have tried the following, but all fail: 我已经尝试了以下方法,但是都失败了:

df_temp = df_temp[df_temp['B'].apply(lambda x: 'mini' in x)] and
df_temp = df_temp[df_temp['B'].apply(lambda x: 'mini' in x.str.match())]

Thank you 谢谢

Just check for equality: 只需检查是否相等:

df_temp = df_temp[df_temp['B'] == 'Mini']

This works because df_temp['B'] == 'Mini' returns a Boolean series, which is then used to index df_temp . 之所以有效,是因为df_temp['B'] == 'Mini'返回一个布尔序列,然后将其用于索引df_temp

Or you can use pd.DataFrame.query for more intuitive syntax: 或者,您可以使用pd.DataFrame.query获得更直观的语法:

df_temp = df_temp.query('B == "Mini"')

pd.Series.apply is just a thinly veiled loop; pd.Series.apply只是一个薄薄的循环; it should be reserved for when you need to explicitly operate on a series one item at a time in a loop. 当您需要在循环中一次显式操作一个系列项目时,应保留它。 It is inefficient and verbose versus indexing via the above methods. 与通过上述方法建立索引相比,它效率低下且冗长。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM