我有以下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}
但我仍然没有任何运气,不管它是在一系列还是字典中。
答案 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}}