#python #pandas
#python #pandas
Вопрос:
Я некоторое время искал решение этой проблемы и, похоже, не могу его найти. У меня есть 5 столбцов, используемых в качестве идентификаторов для отдельных элементов, и еще 5 столбцов, указывающих их высоту. Моя цель — ранжировать идентификаторы НА ОСНОВЕ их соответствующей высоты. Любые идеи о том, как решить эту проблему, были бы высоко оценены.
Person ID Person Height (in)
ID1 ID2 ID3 ID4 ID5 ID1 ID2 ID3 ID4 ID5
201566 202331 203500 203924 1628390 76 65 83 75 73
202329 203081 203090 203468 203994 69 72 80 71 76
Ожидаемый результат:
Person ID (Ranked by Person Height)
ID1 ID2 ID3 ID4 ID5
202331 1628390 203924 201566 203500
202329 203468 203081 203994 203090
Ответ №1:
Проверьте с помощью sorted
и после этого заново создайте свой фрейм данных
l=[[y for _,y in sorted(zip(X, Y))] for Y , X in zip(df1.values.tolist(),df2.values.tolist())]
sorteddf=pd.DataFrame(l,columns=df1.columns)
sorteddf
Out[20]:
ID1 ID2 ID3 ID4 ID5
0 202331 1628390 203924 201566 203500
1 202329 203468 203081 203994 203090