Как изменить порядок строк по условию в pandas?

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

У меня есть два фрейма данных, и один из их порядков является правильным для меня. Я хочу сделать другой порядок таким же, как правильный. В этом суть, дело не в номерах индексов, порядок зависит от переменной. Вот так

df1

 A   B
13  2
20  5
15  3
.   .
.   .
  

df2

 A   B
15  3
13  2
20  5
.   .
.   .
  

Я хочу, чтобы порядок df2 был таким же, как df1, я поместил их в цикл for, но это заняло много времени (мои реальные данные намного больше, чем воспроизводимый пример)

Есть ли более простой способ воплотить мое желание в жизнь? Спасибо за совет.

Ответ №1:

Лучший способ, который я могу придумать, — заменить индекс df2 столбца by A , а затем вызвать его с помощью loc:

 df1 = pd.DataFrame({"A": [13,20,15], "B": [2,5,3]})
df2 = pd.DataFrame({"A": [15,13,20], "B": [3,2,5]})
df2 = df2.set_index("A")
print(df2.loc[df1["A"]])
  

вывод:

     B
A    
13  2
20  5
15  3
  

Это нормально для вас?