У меня есть следующий pandas фрейм данных:
Cmpd1 Cmpd2 Cmpd3 Cmpd4 Cmpd5 Cmpd6
Cmpd1 1
Cmpd2 0.4 1
Cmpd3 0.6 0.3 1
Cmpd4 0.46 0.69 0.32 1
Cmpd5 0.57 0.44 0.41 0.51 1
Cmpd6 0.41 0.79 0.33 0.56 0.43 1
Я бы хотел упорядочить его от наивысшего к низшему на основе индекса, независимо от того, повторяется ли он, то, что я говорю, будет выглядеть так:
Максимальное значение соответствует Cmpd6 = 0,79, за которым следует Cmpd4 = 0,69 ... в какой-то момент Cmpd6 = 0,56, который я хотел бы оставить в списке следующим образом:
Cmpd6 = 0.79
Cmpd4 = 0.69
Cmpdx = x
Cmpd6 = 0.56
This с каждым значением массива, независимо от того, сколько раз индексы повторяются, я пытался с .sort_index (axis = 1)
, но он ничего не дает, я также пытался .ravel ()
, но он не дает мне индексы. Как я могу это исправить?
Спасибо!
Мое решение:
df = df.where(np.tril(np.ones(df.shape), -1).astype(np.bool))
df = df.stack().reset_index().drop("level_1", axis=1).sort_values(by=0, ascending=False)