繁体   English   中英

如何检查PANDAS DataFrame列中是否包含一系列字符串,并将该字符串分配为行中的新列?

[英]How to check if a series of strings is contained in a PANDAS DataFrame columns and assign that string as a new column in the row?

我有一系列要对照DataFrame列检查的子字符串。 例如:

SubStr = pd.series(['dog','cat','cow','fish'])

DataFrame有一个称为“ String”的列,其中:

df['String'] = (['The dog went for a Walk.','The fish was in the lake.','The dog was barking'])

我想在数据帧中添加一列,其中包含在该行的“字符串”中找到的SubStr;如果找不到,则仅添加NaN。 在我的示例中,新列应包含:

df['StrLookUp'] = ['dog','fish','dog']

在我的搜索研究中,我能够找到一些示例,这些示例用于搜索一系列元素中列表中的所有项目,但是没有一个返回所找到的特定元素。

使用正则表达式:

import re

pattern= '|'.join(['dog','cat','cow','fish'])

df['StrLookUp'] = [re.findall(pattern, i) for i in df['String']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM