regex - 使用正则表达式而不是唯一值选择行
问题描述
大家好,我在 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不同的回答
代码看起来像这样
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])
解决方案
使用Series.str.contains
. 适当调整模式:
import re
pattern = '^' + re.escape(namelookup)
match = contacts['Name'].str.contains(pattern, flags=re.IGNORECASE)
contacts[match]
推荐阅读
- xsd - 当缺少必需元素时,如何使 JAXB 失败?
- angular - 如果组件不是当前组件,如何删除本地存储 - 角度
- python - 简短描述不适用于删除选定内容(delete_selected.short_description 未更改名称)
- r - purrr::map 和 dplyr 的冗余变量命名问题
- python - ansible 与solidfire for netapp
- tensorflow - 我们可以在统一 mlagents 中使用 PPO 以外的 ML 算法来处理像 ddpg 这样的多代理吗
- python - 从不同的嵌套 JSON 数组中查找重复项
- phoenix - Apache Phoenix SqlLine 配置
- java - 我对生成的战争有疑问,某些 jpa 原生查询不起作用
- c# - 在后台任务中检测 UWP 应用的已关闭通知