检查序列/di中的重复项

2024-06-06 09:22:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下Series,这是在DataFrame上使用Stack得到所需输出的结果:

col1  col2
A     GS      0.522696
F     GS      0.422812
GS    A       0.522696
      F       0.422812

在上面的例子中,行(A,GS) = 0.522696(GS,A) = 0.522696被认为是相同的,所以我需要过滤掉其中的一个。这同样适用于(F,GS) = 0.422812(GS,F) = 0.422812。你知道吗

实际上,每一行都将被复制,即col1和col2将被反转,但相应的浮点值是相同的。(即:GS,F是F,GS的副本)。因此,我需要过滤掉'重复'。过滤掉哪一行并不重要,我只需要上面示例的结果只包含两行。你知道吗

我尝试将结构更改为dict,只是想看看它是否更易于使用,即:Series.to_dict(),结果是:

{('GS', 'F'): 0.422812, ('A', 'GS'): 0.522696,
('F', 'GS'): 0.422812, ('GS', 'A'): 0.522696} 

但不管是连续剧还是口述,我还是没有任何运气


Tags: togs示例dataframestack副本结构dict
2条回答

您可以使用字典理解来避免值重复:

new_dict = {v: k for k,v in old_dict.items()} 

您可以删除dict中的重复项:

result_dict = Series.to_dict()
for elem in Series:
    if elem in result_dict:
        s_elem1, s_elem0 = elem
        del result_dict[(s_elem0, s_elem1)]

相关问题 更多 >