匹配DataFrame

时间:2017-11-13 14:23:11

标签: python regex pandas

我有一个DataFrame,其中一列包含一个文本,我想从中提取一些信息。

我有两个词:'Type'和'Capacity',它们之间是一串数字和非数字字符+白色空格是可能的 - 我想将它保存到一个新列。

这是我的代码

df['new'] = df['text'].apply(lambda x: re.search(r'Type (\w+) Capacity', x).group(1))
print (df['new'])

它没有给我错误,但打印出来:

  

系列([],名称:test,dtype:object)

我不明白出了什么问题。谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

您可以使用

df['new'] = df['text'].str.extract(r'Type (\w+) Capacity')

pandas.Series.str.extract方法仅返回捕获的值(与括号模式部分匹配的值)。

如果您想确保仅返回数据框(或expand=True以获取Series / Index / DataFrame),您也可以传递False,如果您在某些行上没有匹配项, .fillna('')可能有用。