Поиск минимальных значений и внесение их в список

302 просмотра
0
0 Комментариев
  1. Поиск минимального значения в столбце «2» и запись индекса в res. «2» ==> «4»
  2. Поиск минимального значения в столбце, который был найден в предыдущем пункте и запись индекса в res, исключая результаты, имеющиеся в res. «4» ==> «1».
  3. Поиск минимального значения в столбце, который был найден в предыдущем пункте и запись индекса в res, исключая результаты, имеющиеся в res. «1» ==> «3».
  4. Поиск минимального значения в столбце, который был найден в предыдущем пункте и запись индекса в res, исключая результаты, имеющиеся в res. «3» ==> «5».

          1             2          3          4          5
    1        inf   5.909091   8.636364   7.272727   4.454545
    2   7.222222        inf   8.666667   7.666667   1.777778
    3  15.833333  13.000000        inf   9.166667  14.666667
    4   4.444444   3.833333   3.055556        inf   4.833333
    5  24.500000   8.000000  44.000000  43.500000        inf
    

    Пример ниже. Но функцию не cмог применить

    res = ['2']
    def f():
        i = 0
        ret = d[res[i]].idxmin()
        i += 1
    if ret not in res:
        res.append(ret)
    print(res)
    x = d.apply(f)
    

На выходе должно получится: [2, 4, 1, 3, 5]


Добавить комментарий

1 Ответы

Python Опубликовано 14.12.2018
0

def f(col):
    ret = col.loc[~col.index.isin(res)].idxmin()
    if ret not in res:
        res.append(ret)
 
res = [2]
_ = df.iloc[:, 1:].apply(f)
 
print(res)

Результат:

[2, 4, 1, 3, 5]

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up