【问题标题】:Removing a string from a list in a pandas dataframe从熊猫数据框中的列表中删除字符串
【发布时间】:2021-08-12 11:14:58
【问题描述】:

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

Column1 Column2
1 ['a','b']
2 ['b']

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

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

有人可以帮帮我吗?

【问题讨论】:

  • 错误的欺骗,所以重新打开。

标签: python pandas list dataframe


【解决方案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=[])

【讨论】:

    猜你喜欢
    • 2018-03-23
    • 2017-07-27
    • 2022-12-03
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 2019-03-06
    • 2019-01-28
    相关资源
    最近更新 更多