【问题标题】:Remove elements from a list in pandas dataframe从熊猫数据框中的列表中删除元素
【发布时间】:2019-05-22 04:31:06
【问题描述】:

我想从 pandas 数据框列的列表中删除特定值。我该怎么办?

df = pd.DataFrame({'A': ['a1', 'a2', 'a3'],
               'B': [['b1', 'b2'], ['b1', 'b1'], ['b2']],
               'C': [['c1', 'b1'], ['b3'], ['b2', 'b2']],
               'D': ['d1', 'd2', 'd3']})

我想从数据框中的“B”列中删除列表中的字符串“b1”。

【问题讨论】:

标签: python pandas


【解决方案1】:

你可以使用列表推导

df['B'] = df.B.apply(lambda x: [i for i in x if i != 'b1'])


    A   B       C           D
0   a1  [b2]    [c1, b1]    d1
1   a2  []      [b3]        d2
2   a3  [b2]    [b2, b2]    d3

【讨论】:

  • 什么是错误信息或你得到什么输出?
【解决方案2】:

和我之前的所有回答一样

(df.B.map(set)-{'b1'}).map(list)
Out[171]: 
0    [b2]
1      []
2    [b2]
Name: B, dtype: object

【讨论】:

  • 但也会杀死其他字符串元素的重复项,这里不是这种情况,但由于“b1”是这种情况,所以其他字符串也可能如此。
  • 对于一个具体示例,将数据框中的 B 列替换为:'B': [['b1', 'b2'], ['b1', 'b1'], ['b2' ]] with: 'B': [['b1', 'b2', 'b2'], ['b1', 'b1'], ['b2', 'b2']]]
猜你喜欢
  • 2021-11-02
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
  • 2020-05-28
  • 2018-03-15
  • 2016-08-09
  • 2016-04-11
相关资源
最近更新 更多