从熊猫数据框中的列表中删除字符串

时间:2021-05-24 05:41:10

标签: python pandas list dataframe

我的数据框中的一列是一个列表。这是它的样子 -

<头>
Column1 Column2
1 ['a','b']
2 ['b']

我想从 Column2 的列表中删除字符串 b。我正在尝试以下 -

df=df['Column2'].map(lambda x: if 'b' in x then x.remove('b'))

有人可以帮我吗?

1 个答案:

答案 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=[])