我有以下单词列表:
x = ['Gaga', 'Gaga', 'Lam', 'Reem', 'Pal', 'Gaga','Lam']
我需要删除仅出现一次的单词,然后返回索引或位置。
y = ['Gaga', 'Gaga', 'Lam', 'Gaga', 'Lam']
loc = [0, 0, 0, 1, 1, 0, 0]
有任何简单的功能可以做到这一点吗?
最佳答案
具有pandas
模块及其pd.Series.duplicated()
功能的替代单线:
In [80]: x = ['Gaga', 'Gaga', 'Lam', 'Reem', 'Pal', 'Gaga','Lam']
In [81]: (~pd.Series(x).duplicated(keep=False)).astype(int).tolist()
Out[81]: [0, 0, 0, 1, 1, 0, 0]
要删除所有非重复项:
In [85]: s = pd.Series(x)
In [86]: s[s.duplicated(keep=False)].tolist()
Out[86]: ['Gaga', 'Gaga', 'Lam', 'Gaga', 'Lam']