如何获取列中多个最小值的索引?
Posted
技术标签:
【中文标题】如何获取列中多个最小值的索引?【英文标题】:How to get the index of multiple mininum values in a column? 【发布时间】:2021-10-28 08:39:53 【问题描述】:我正在尝试获取数据框中每列的 k 个最小值。但是我无法获得索引。 我有一个数据框,其中包含名为 ddist 的数据之间的距离。我想在每列中选择 k 个最小元素并列出第一个。每个元素所在的行数,因此我可以稍后将其用于 KNN。
这些是我尝试获取索引的行,但是我得到了一个包含索引和值的列表,并且无法单独访问索引。
list_min = []
for column in ddist:
idx = ddist.nsmallest(k,column)
idx=idx[0]
list_min.append(idx)
list_min
输出如下所示
[43 0.0
188 0.0
202 0.0
Name: 0, dtype: float64,
21 0.04
26 0.04
94 0.04
Name: 0, dtype: float64,
27 0.39
52 0.39
164 0.39
Name: 0, dtype: float64,
33 0.01
131 0.01
210 0.01
...
但我只想获得看起来像每个条目上的列的整数。
【问题讨论】:
【参考方案1】:你应该试试pd.Series.index
:
list_min = []
for column in ddist:
idx = ddist.nsmallest(k,column)
idx=idx[0]
list_min.append(idx.index.tolist())
list_min
【讨论】:
谢谢!这有很大帮助,但是我仍然无法仅访问整数,因为输出如下所示: [Int64Index([43, 188, 202], dtype='int64'), Int64Index([21, 26, 94], dtype='int64'), Int64Index([27, 52, 164], dtype='int64'), Int64Index([33, 131, 210], dtype='int64'), Int64Index([59, 82, 88] , dtype='int64'), Int64Index([2, 13, 24], dtype='int64'), ... @ReginaBriseño 已编辑我的答案现在应该可以使用,如果可行,请接受并投票以上是关于如何获取列中多个最小值的索引?的主要内容,如果未能解决你的问题,请参考以下文章