Python 如何拆分datacolumn中的值并将其添加到新列中,其中包含一个条件
我有一个dfPython 如何拆分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”]拆分为(,),如果值存在于我的_列表中,则将该值添加到一个
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