我很抱歉这个超级简单的问题,但我无法使其发挥作用
我正在清理数据,并且想要添加一个标志,如果名称(分为两列First和Last Name)是错误的。我建立了多种模式,但是现在我正在使用单独的语句,我可以将所有这些语句合并成一个吗?
pattern = "\?"
match = incremental['First_Name'].str.contains(pattern) | incremental['Last_Name'].str.contains(pattern)
incremental['Name_Flag'] = np.where(match, 'Y', '')
pattern = "tourist"
match = incremental['First_Name'].str.contains(pattern) | incremental['Last_Name'].str.contains(pattern)
incremental['Name_Flag'] = np.where(match, 'Y', '')
这不起作用,因为第二个语句覆盖了第一个语句。
pattern = ("tourist","/?")
match = incremental['First_Name'].str.contains(pattern) | incremental['Last_Name'].str.contains(pattern)
incremental['Name_Flag'] = np.where(match, 'Y', '')
我收到第二个版本的错误(并不奇怪)
TypeError: first argument must be string or compiled pattern.
答案 0 :(得分:2)
如果您正在尝试查找两种正则表达式模式 - 就像在字符串中搜索?
和tourist
一样。您可以使用|
运算符。因此,请将pattern
更改为
pattern = "tourist|\?"
如果'tourist`在字符串中,这将检查问号 OR
如果您想查看正则表达式,pythex是一个非常好的地方。我为你做了一个测试。