如何获取列中多个最小值的索引?

How to get the index of multiple mininum values in a column?

我正在尝试获取数据帧上每一列的 k 个最小值。但是我无法获得指数。 我有一个数据框,其中包含名为 ddist 的数据之间的距离。我想 select 每列中的 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
...

但我只想获得在每个条目上看起来像一列的整数。

你应该试试 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