我正在尝试编写一些代码,以逗号分隔数据框列中的字符串(使其成为列表),并从该列表中删除某个字符串(如果存在)。删除不需要的字符串后,我想再次以逗号连接列表元素。我的数据帧如下所示:
df:
Column1 Column2
0 a a,b,c
1 y b,n,m
2 d n,n,m
3 d b,b,x
所以基本上我的目标是从column2中删除所有的b值,这样我就可以得到:
数据框:
Column1 Column2
0 a a,c
1 y n,m
2 d n,n,m
3 d x
我写的代码如下:
df=df['Column2'].apply(lambda x: x.split(','))
def exclude_b(df):
for index, liste in df['column2].iteritems():
if 'b' in liste:
liste.remove('b')
return liste
else:
return liste
第一行将列中的所有值拆分为逗号分隔的列表。现在使用这个函数,我尝试遍历所有列表并删除b(如果存在),如果不存在,则返回列表原样。如果我在末尾打印'liste',它只返回Column2的第一行,而不返回其他行。我做错什么了?有没有办法将if条件实现为lambda函数?
简单地说,您可以应用regex
b,?
,这意味着替换在b
之后找到的,
和,
的任何值(如果存在的话)相关问题 更多 >
编程相关推荐