我有一个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)
我不明白出了什么问题。谢谢你的帮助
答案 0 :(得分:1)
您可以使用
df['new'] = df['text'].str.extract(r'Type (\w+) Capacity')
pandas.Series.str.extract
方法仅返回捕获的值(与括号模式部分匹配的值)。
如果您想确保仅返回数据框(或expand=True
以获取Series / Index / DataFrame),您也可以传递False
,如果您在某些行上没有匹配项, .fillna('')
可能有用。