检查系列/字典

时间:2015-08-01 09:43:02

标签: python pandas

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

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} 

但我仍然没有任何运气,不管它是在一系列还是字典中。

2 个答案:

答案 0 :(得分:0)

您可以删除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)]

答案 1 :(得分:0)

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

{{1}}