' NoneType'对象没有属性' group'兰巴的错误

时间:2018-04-11 07:44:12

标签: python regex pandas lambda

我试图使用正则表达式从pandas列中提取字符串的一部分。但是,代码会导致错误:

  

AttributeError:' NoneType'对象没有属性' group'

以下是我使用的代码:

dff['User_Mentions'] = dff['content'].apply(lambda x: re.search("@([a-zA-Z0-9]{1,15})", x).group(1))

1 个答案:

答案 0 :(得分:1)

要以这种方式使用re.search,每行都需要匹配,否则返回None。由于None没有group属性,您将看到当前错误。

避免错误的一种方法是稍微更改模式并使用|$使用空替代方法:

dff['User_Mentions'] =  dff['content'].apply(lambda x: re.search("@([a-zA-Z0-9]{1,15})|$", x).group(1))

当没有匹配时,这将在数据框中给出None值。

另一种选择是使用评论中提到的Series.str.extract

dff['User_Mentions2'] =  dff['content'].str.extract('@([a-zA-Z0-9]{1,15})', expand=False)

这会导致行中的NaN值无匹配。