Python:首先在列表中出现一个项目

除了第一次出现之外,如何删除列表中所有特定值的出现?
例如.我有一个清单:

letters = ['a', 'b', 'c', 'c', 'c', 'd', 'c', 'a', 'a', 'c']

我需要一个看起来像这样的函数

preserve_first(letters, 'c')

并返回:

['a', 'b', 'c', 'd', 'a', 'a']

删除除第一次出现的给定值之外的所有内容,否则保留顺序.如果有办法用pandas.Series做更好的事情.

解决方法:

您只想删除重复的’c’.因此,您希望过滤系列根本不重复的位置,或者它不等于’c’.我喜欢使用pd.Series.ne代替pd.Series!=因为包装括号的减少增加了可读性(我的观点).

s = pd.Series(letters)

s[s.ne('c') | ~s.duplicated()]

0    a
1    b
2    c
5    d
7    a
8    a
dtype: object

完全按照要求去做.

def preserve_first(letters, letter):
    s = pd.Series(letters)
    return s[s.ne(letter) | ~s.duplicated()].tolist()

preserve_first(letters, 'c')

['a', 'b', 'c', 'd', 'a', 'a']

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...