如何获取列中多个最小值的索引?
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
我正在尝试获取数据帧上每一列的 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