【发布时间】:2022-07-06 05:08:37
【问题描述】:
所以,我有这样的数据框,
data = {
"properties": ["FinancialOffice","Gas Station", "Office", "K-12 School"],
}
df = pd.DataFrame(data)
这是我的清单,
proplist = ["Office","Other - Mall","Gym"]
我想要做的是使用列表,我试图找出哪些单词与数据框列完全匹配,并且对于数据框中的每个单词,我需要分配一个布尔真/假值或 0/1。它必须是完全匹配的。
这样的输出,
properties flag
FinancialOffice FALSE
Gas Station FALSE
Office TRUE
K-12 School FALSE
因此,它仅对“Office”返回 TRUE,因为它与列表完全匹配。 FinancialOffice 不是因为它不在列表中。
这是我的方法,效果很好,但我需要为 df 分配一个新的布尔列以找出哪些是完全匹配的。
我的方法,
import re
s= ','.join(df["properties"]) # gives comma separated values.
for words in proplist :
if re.search(r'\b' + words + r'\b', s):
print('{0}'.format(words)) ## print out only Office the matching word.
感谢任何帮助。它需要是正则表达式,因为 str.contains 找不到完全匹配。
【问题讨论】:
标签: python regex pandas text-mining