所以对于这个问题。我有这个专栏:
Column of product names我需要创建一个函数,它接受一个关键字,并返回名称中包含该关键字的所有产品。对于这个特殊的问题,关键词是“小麦”。我的函数如下:
def find_word(keyword):
word = []
for i in range(len(df)):
if keyword in df['name'][i]:
word.append(df['name'][i])
return word
find_word("Wheat")下面是返回的内容:
“奶油小麦(快速)”,“脆小麦和葡萄干”,“霜迷你小麦”,“营养小麦”,“膨化小麦”,“碎麦皮”,“碎小麦匙大小”,“草莓水果面团”,“小麦干酪”,“麦片”,“麦片蜂蜜黄金”
正如你所看到的,最后2个以及倒数第3个不属于。我不确定如何构造函数来查找这些情况。
发布于 2020-05-07 04:18:40
我认为你正在寻找的东西可以通过下面的re模块来实现:
import re
def find_word(keyword):
word = []
# create a regular expression pattern that would "exactly" match the keyword
# \b represents Word boundary
p = re.compile(r'\b{}\b'.format(keyword))
for i in range(len(df)):
# use the pattern to search the name
if p.search(df['name'][i]):
word.append(df['name'][i])
return word
find_word("Wheat")['Cream of Wheat (Quick)', 'Crispy Wheat & Raisins', 'Frosted Mini-Wheat',
'Nutri-grain Wheat', 'Puffed Wheat', 'Shredded Wheat',
"Shredded Wheat'n'Bran", 'Shredded Wheat spoon size', 'Wheat Chex']发布于 2020-05-07 04:29:25
尝尝这个。
df[df["name"].str.contains(r'(?:\s|^)Wheat(?:\s|$)')]["name"]https://stackoverflow.com/questions/61643820
复制相似问题