我正在编写一个代码来计算一行中每个字符串之间的距离。我的代码运行良好。但是,我现在的问题是过滤我的结果,例如,我有以下结果数据帧:
nodeA nodeB distance_score
0 0 0
0 1 95
0 2 105
1 0 95
1 1 0
1 2 128
........
我想删除属于相同节点的一行,例如对于(0,1)和(1,0)对,一个条目就足够了。根据我在Matlab中的经验,我可以这样做:迭代两个循环,将每个循环的元素存储在一个数组中,然后检查这些元素是否已经存在于这些数组中,并将它们移除。但我不认为这是在python中优化的方法,因为我有大量的数据文件,这样做会花费很多
另一种方法是使用两个值的冻结集,然后在groupby中使用该值,并获取组中的第一个元素,例如:
这将给你:
使用
np.sort
和drop_duplicates
使用
np.unique
和return_index
参数:在本例中,两者都产生:
但是,第一个答案(尽管它总是返回有效的组合)可能返回与原始数据帧不同的行。举个例子:
使用
np.sort
时:使用
np.unique
时:如您所见,在本例中,第一种方法将翻转组合顺序。你知道吗
相关问题 更多 >
编程相关推荐