Предположим, у меня есть матрица 750x750, помещенная в DataFrame, скажем, df.Как получить имя столбца, используя значения в фрейме данных?
df=
c1 c2 c3 ... c750
c1 5 2 5 ... 3
c2 3 1 5 ... 80
c3 4 2 7 ... 10
. . . . ... .
. . . . ... .
. . . . ... .
c750 8 3 5 ... 1
Я хочу выяснить 4 высшего значения, содержащую столбец для каждой строки, я могу легко сделать это с помощью:
a = df.values
a.sort(axis=1)
sorted_table = a[:,-4::]
b = a[:,::-1]
Однако, результат я получаю это просто список, без имя индекса и столбца.
[[ 98. 29. 15. 10.]
[ 93. 91. 75. 60.]
[ 48. 21. 17. 10.]
.
.
.
...]
Что делать, если я хочу знать, какое имя столбца относится к отсортированным значениям?
Я хотел бы показать:
df=
c1 c512 c20 c57 c310
c2 c317 c133 c584 c80
c3 c499 c289 c703 c100
. . . . ... .
. . . . ... .
. . . . ... .
c750 c89 c31 c546 c107
где
c512 is referring to 98
c20 is referring to 29
c57 is referring to 15
and so and so.
Вы можете использовать 'df.apply (MyFunc, ось = 1)' вместо 'df.sort'. Это позволит вам манипулировать именами столбцов вместе со своими значениями. –
У вас есть пример результата, который вы хотите? Проблема, которую я вижу, состоит в том, что столбец может иметь несколько строк с наивысшими значениями, поэтому сортировка по этой строке может отображаться так, как вы хотите. Как вы хотите отображать имена столбцов для каждой строки с наивысшими значениями? – Jarad
@Jarad, я бы хотел отобразить данные как обновлено выше. Надеюсь, вы можете дать мне некоторые идеи для этого. –