我有这样的数据:
Index SourceID ComparedID Distance
571 106 8 0.004846
572 106 11 0.000000
573 106 23 0.012712
574 107 84 0.002800
575 107 70 0.007555
它位于pandas
数据帧中。我正在想办法:
我想从dataframe创建一个结果,找到最小距离并返回ComparedID
。你知道吗
所以输出看起来像:
SourceID ComparedID Distance
106 11 0.000000
107 84 0.002800
我该怎么做?你知道吗
可以使用idxmin()
我不确定你到底需要什么,所以我在下面列出了2个选项。你知道吗
<强>1。不按源ID分组
这是获得2个最小距离的一种方法:
要仅返回comparedId列表,请执行以下操作:
<强>2。按源ID分组
这里的想法是按距离排序,然后按SourceID删除重复项:
结果:
您希望按距离对数据帧进行排序,并为每个
'SourceID'
获取距离最小的行,即每个组的第一行。你知道吗上述操作产生以下输出:
当您使用group by时,分组的列最终会被索引,您可以通过随后重置索引来展平数据帧,以获得所需的输出
输出:
相关问题 更多 >
编程相关推荐