Python 如何拆分datacolumn中的值并将其添加到新列中,其中包含一个条件

Python 如何拆分datacolumn中的值并将其添加到新列中,其中包含一个条件,python,pandas,dataframe,data-analysis,Python,Pandas,Dataframe,Data Analysis,我有一个df name Value Sri is a cricketer Sri,is Ram player Ram Ravi is a singer is cricket and foot is ball and,is,foot 和一份清单 my_list=[“是”,“脚”] 我正在尝试将df[“value”]拆分为(,),如果值存在于我的_列表中,则将该值添加到一个

我有一个df

name                        Value
Sri is a cricketer          Sri,is
Ram player                  Ram
Ravi is a singer            is
cricket and foot is ball    and,is,foot
和一份清单

my_list=[“是”,“脚”]

我正在尝试将df[“value”]拆分为(,),如果值存在于我的_列表中,则将该值添加到一个新列中。 我的预期产出是

name                      Value        my_list
Sri is a cricketer        Sri           is      
Ram player                Ram 
Ravi is a singer                        is     
cricket and foot is ball  and          is,foot
请帮助实现这一点,提前感谢使用:

另一个解决方案是使用并获取
集合的
交点
s:

my_list=["is", "foot"]
df['my_list']=df['Value'].str.split(',').apply(lambda x: set(x) & set(my_list)).str.join(',')
print (df)
                       name        Value  my_list
0        Sri is a cricketer       Sri,is       is
1                Ram player          Ram         
2          Ravi is a singer           is       is
3  cricket and foot is ball  and,is,foot  is,foot
最后:

df['Value'] = (df['Value'].str.replace('(' + '|,'.join(my_list) + ')', '')
                          .str.replace('[,]{2,}',',')
                          .str.strip(','))
print (df)
                       name Value  my_list
0        Sri is a cricketer   Sri       is
1                Ram player   Ram         
2          Ravi is a singer             is
3  cricket and foot is ball   and  is,foot
或:


不是
和,foot
,而是
和,是,foot
?是的,对不起。我编辑了问题“为什么值第二行中的'singeris'”提取的值不应出现在df[“value”]中,请检查我的预期输出
df['Value'] = (df['Value'].str.replace('(' + '|,'.join(my_list) + ')', '')
                          .str.replace('[,]{2,}',',')
                          .str.strip(','))
print (df)
                       name Value  my_list
0        Sri is a cricketer   Sri       is
1                Ram player   Ram         
2          Ravi is a singer             is
3  cricket and foot is ball   and  is,foot
my_list=["is", "foot"]

s1 = df['Value'].str.split(',')

df['my_list'] = s1.apply(lambda x: set(x) & set(my_list)).str.join(',')
df['Value'] = s1.apply(lambda x: set(x) - set(my_list)).str.join(',')
print (df)

                       name Value  my_list
0        Sri is a cricketer   Sri       is
1                Ram player   Ram         
2          Ravi is a singer             is
3  cricket and foot is ball   and  is,foot