[英]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.