pandas 从2D列表中移除重复元素(非列表),Python

bcs8qyzn  于 2022-11-27  发布在  Python
关注(0)|答案(2)|浏览(151)

我想从列表中删除所有出现不止一次的元素,并寻找比这更平滑的解决方案:Removing Duplicate Elements from List of Lists in Prolog
我并不想删除父列表中的重复列表,如下所示:How to remove duplicates from nested lists
考虑以下Int:

list = [
[1, 3, 4, 5, 77],
[1, 5, 10, 3, 4],
[1, 5, 100, 3, 4], 
[1, 3, 4, 5, 89], 
[1, 3, 5, 47, 48]]

所需输出:

new_list= [
[77],
[10],
[100], 
[89], 
[47, 48]]

谢谢。我打算在Pandas身上用这个:new_list将作为一个新列,与原始列相比,每行的值都是唯一的。

iyr7buue

iyr7buue1#

也许有更圆滑的方法,但这是可行的:

from collections import Counter

mylist = [
[1, 3, 4, 5, 77],
[1, 5, 10, 3, 4],
[1, 5, 100, 3, 4], 
[1, 3, 4, 5, 89], 
[1, 3, 5, 47, 48]]

flat = [y for x in mylist for y in x]    
count = Counter(flat)
uniq = [x for x,y in count.items() if y == 1]
new_list = [[x for x in y if x in  uniq] for y in mylist]

其给出了

[[77], [10], [100], [89], [47, 48]]
r6hnlfcb

r6hnlfcb2#

for bi,lst in enumerate(l):
    for el in lst:
        for i in range(len(l)):
            if bi != i:
                if el in l[i]:
                    print(f'element:{el}')
                    print(f'passing over list:{l[i]}')
                    l[i].remove(el)
                    try: l[bi].remove(el)
                    except: continue

那个不是很有用,但是我发现通常其他的答案(包括你的链接帖子)会使用其他的模块,所以我尝试了不同的方法。

相关问题