我在删除重复项时遇到问题。我的程序基于一个生成元组(x,y)的循环,然后这些元组用作图形中的节点。节点的最后阵列/矩阵为:删除Python中的重复项Pandas DataFrame不删除重复项
[[ 1. 1. ]
[ 1.12273268 1.15322175]
[..........etc..........]
[ 0.94120695 0.77802849]
**[ 0.84301344 0.91660517]**
[ 0.93096269 1.21383287]
**[ 0.84301344 0.91660517]**
[ 0.75506418 1.0798641 ]]
数组的长度为22。现在,我需要删除重复的条目(见**)。所以我用:
def urows(array):
df = pandas.DataFrame(array)
df.drop_duplicates(take_last=True)
return df.drop_duplicates(take_last=True).values
好极了,但我仍然得到:
0 1
0 1.000000 1.000000
....... etc...........
17 1.039400 1.030320
18 0.941207 0.778028
**19 0.843013 0.916605**
20 0.930963 1.213833
**21 0.843013 0.916605**
因此下降重复不消除任何。我测试过,看看实际上和我得到的节点是否相同:
print urows(total_nodes)[19,:]
---> [ 0.84301344 0.91660517]
print urows(total_nodes)[21,:]
---> [ 0.84301344 0.91660517]
print urows(total_nodes)[12,:] - urows(total_nodes)[13,:]
---> [ 0. 0.]
为什么它不起作用???我如何删除这些重复的值?
一个问题....
说两个值是“几乎”等于(说x1和x2),有没有什么办法来取代他们的方式,他们都等于????我想要的是用x1替换x2,如果它们“几乎”相等。
drop_duplicates *不*维持秩序,我不明白你在问什么......是有可能降简化这个问题? – 2013-05-02 10:59:22
谢谢。我完全编辑并重新构思了这个问题。我意识到我错误地问了错误的东西。 – Oniropolo 2013-05-02 15:41:18
我不知道熊猫,但是有可能a)条目在稍后的小数位不同,或者b)它们是两个不同的列表(它们恰好具有相同的条目),它们的对象标识进行比较?如果两者都不是这样,请忽略我的评论... – 2013-05-02 15:50:42