Python 从表行中的列表中搜索文本,如果找到文本,则将其提取到新列中

Python 从表行中的列表中搜索文本,如果找到文本,则将其提取到新列中,python,python-3.x,pandas,string,dataframe,Python,Python 3.x,Pandas,String,Dataframe,我有一个标题列表,其中有电子竞技队的名字。我需要在单独的列中提取它们。如果标题有相同的“面具”,但它们是不同的,那就很容易了 如果我有一份所有球队的名单,我想知道是否有办法从标题中提取球队名称。比如,编写一个代码循环遍历每一行,并在新列中复制团队名称(如果找到) 团队列表: teams = ['IG.V', 'Matador', 'Galaxy Racer', 'MG.Trust', 'Five brothers', 'Team Rocket', 'Cobra Gaming', 'Revenge

我有一个标题列表,其中有电子竞技队的名字。我需要在单独的列中提取它们。如果标题有相同的“面具”,但它们是不同的,那就很容易了

如果我有一份所有球队的名单,我想知道是否有办法从标题中提取球队名称。比如,编写一个代码循环遍历每一行,并在新列中复制团队名称(如果找到)

团队列表:

teams = ['IG.V', 'Matador', 'Galaxy Racer', 'MG.Trust', 'Five brothers', 'Team Rocket', 'Cobra Gaming', 'Revenge Gaming', 'Secret', 'Virtus.pro']
预期结果

N 标题 第1组 第二组 1. [RU]IG.V 0:1斗牛士(BO2)女士中秋节@Skor@fourApril Ig.V 斗牛士 2. [RU]银河赛车手0:0 MG.Trust(BO3)月球工作室嘉年华杯@螳螂 银河赛车手 MG信托公司 3. [RU/EN]五兄弟-火箭队亚洲金牌占领S19 五兄弟 火箭队 4. [RU/EN]眼镜蛇游戏-复仇游戏大师赛S13 眼镜蛇游戏 复仇游戏 5. LFพากย์ 秘密⚔️Virtus.pro(Bo3)通过
re.escape
使用lsit的转义值,通过
\b\b
添加单词绑定,最后通过以下方式添加到原始值:

重新导入
#把火箭队换成火箭队参加比赛
团队=['IG.V'、'斗牛士'、'Galaxy Racer'、'MG.Trust',
“五兄弟”、“火箭队”、“眼镜蛇游戏”,
‘复仇游戏’、‘秘密’、‘Virtus.pro’]
pat=“(“+”|“.join(r”\b{}\b).format(re.escape(x))for x in teams)+”
df=df.join(df['Title'].str.extractall(pat)[0].unstack().add_前缀('team'))
打印(df)
N标题组0\
0 1[RU]IG.V 0:1斗牛士(BO2)女士中秋节@Sko。。。IG.V
1 2[俄罗斯]银河赛车0:0毫克信任(BO3)月球螺柱。。。银河赛车手
2 3[RU/EN]五兄弟-火箭队亚洲高尔夫。。。五兄弟
3 4[RU/EN]眼镜蛇游戏-复仇游戏大师。。。眼镜蛇游戏
4.5 LFพากย์ 秘密⚔️Virtus.pro(Bo3)通过
re.escape
使用lsit的转义值,通过
\b\b
添加单词绑定,最后通过以下方式添加到原始值:

重新导入
#把火箭队换成火箭队参加比赛
团队=['IG.V'、'斗牛士'、'Galaxy Racer'、'MG.Trust',
“五兄弟”、“火箭队”、“眼镜蛇游戏”,
‘复仇游戏’、‘秘密’、‘Virtus.pro’]
pat=“(“+”|“.join(r”\b{}\b).format(re.escape(x))for x in teams)+”
df=df.join(df['Title'].str.extractall(pat)[0].unstack().add_前缀('team'))
打印(df)
N标题组0\
0 1[RU]IG.V 0:1斗牛士(BO2)女士中秋节@Sko。。。IG.V
1 2[俄罗斯]银河赛车0:0毫克信任(BO3)月球螺柱。。。银河赛车手
2 3[RU/EN]五兄弟-火箭队亚洲高尔夫。。。五兄弟
3 4[RU/EN]眼镜蛇游戏-复仇游戏大师。。。眼镜蛇游戏

4.5 LFพากย์ 秘密⚔️Virtus.pro(Bo3)感谢您的回答!当我试图处理真实数据时,我遇到了一个错误:Traceback(最近一次调用last):文件“C:\Users\USERNAME\AppData\Local\Programs\Python\Python39\lib\re.py”,第277行,在escape pattern=str(pattern,'latin1')类型错误:解码为str:需要一个类似object的字节,int发现我在应用团队搜索之前预处理了这个列。没有特殊字符或NUM。我认为这是一个问题,因为字符串中有非拉丁字符,因为我清除了NUM和spec.CHAR中的所有字符。也许我需要删除所有非拉丁字符,然后应用你的解决方案?@NekitKravchenko-我认为这是个好主意。@jezreal-仍然是同样的问题。也许我们可以在别的地方谈谈,在那里我可以给你发个文件?@NekitKravchenko-可以把文件发到我的邮箱吗?电子邮件在我的个人资料中,只运行python代码谢谢你的回答!当我试图处理真实数据时,我遇到了一个错误:Traceback(最近一次调用last):文件“C:\Users\USERNAME\AppData\Local\Programs\Python\Python39\lib\re.py”,第277行,在escape pattern=str(pattern,'latin1')类型错误:解码为str:需要一个类似object的字节,int发现我在应用团队搜索之前预处理了这个列。没有特殊字符或NUM。我认为这是一个问题,因为字符串中有非拉丁字符,因为我清除了NUM和spec.CHAR中的所有字符。也许我需要删除所有非拉丁字符,然后应用你的解决方案?@NekitKravchenko-我认为这是个好主意。@jezreal-仍然是同样的问题。也许我们可以在别的地方谈谈,在那里我可以给你发个文件?@NekitKravchenko-可以把文件发到我的邮箱吗?电子邮件在我的个人资料中,仅运行python代码