我的数据框中的一列是一个列表。这是它的样子 -
Column1 | Column2 |
---|---|
1 | ['a','b'] |
2 | ['b'] |
我想从 Column2 的列表中删除字符串 b。我正在尝试以下 -
df=df['Column2'].map(lambda x: if 'b' in x then x.remove('b'))
有人可以帮我吗?
答案 0 :(得分:1)
更改逻辑 - 如果不是 b
则过滤所有值:
df['Column2']=df['Column2'].map(lambda x: [y for y in x if y != 'b'])
或者:
df['Column2']=df['Column2'].map(lambda x: list(filter(lambda y: y!= 'b', x)))
print (df)
Column1 Column2
0 1 [a]
1 2 []
熊猫解决方案可能,更复杂,所以更慢:
df['Column2']=df['Column2'].explode().loc[lambda x: x != 'b'].groupby(level=0).agg(list).reindex(df.index, fill_value=[])