【发布时间】:2019-11-30 22:31:22
【问题描述】:
大家好,我正在 Pandas 数据框中进行非常简单的查找,我需要做的是查找我输入为正则表达式而不是 == myvar 的输入
到目前为止,这是我得到的,这是非常无用的,因为我的 DataFrame 中有很多名称,而不是匹配它们的列表,而这些名称可能是
Name LastName
NAME 1 Some Awesome
Name 2 Last Names
Nam e 3 I can keep going
Bane Writing this is awesome
BANE 114 Lets continue
这就是我得到的结果
import pandas as pd
contacts = pd.read_csv("contacts.csv")
print("regex contacts")
nameLookUp = input("Type the name you are looking for: ")
print(nameLookUp)
desiredRegexVar = contacts.loc[contacts['Name'] == nameLookUp]
print(desiredRegexVar)
我必须输入 'NAME 1' 或 'Name e 3' 才能得到结果,否则我根本不会得到任何结果,我尝试使用它但没有用
#regexVar = "^" + contacts.filter(regex = nameLookUp)
感谢@Code Different的回答
代码如下所示
import pandas as pd
import re
namelookup = input("Type the name you are looking for: ")
pattern = '^' + re.escape(namelookup)
match = contactos['Cliente'].str.contains(pattern, flags=re.IGNORECASE, na=False)
print(contactos[match])
【问题讨论】:
标签: regex python-3.x pandas