我正在尝试编写一些代码,以逗号分隔数据帧列中的字符串(因此它成为一个列表),并从该列表中删除某个字符串(如果存在)。删除不需要的字符串后,我想再次以逗号加入列表元素。我的数据框如下所示:
df:
Column1 Column2
0 a a,b,c
1 y b,n,m
2 d n,n,m
3 d b,b,x
所以基本上我的目标是从第 2 列中删除所有 b 值,以便我得到:
df:
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 函数中?