Я хотел бы изменить порядок одного фрейма данных, чтобы он соответствовал порядку двух столбцов в другом фрейме данных.
Этот подход работает, но наверняка кто-то может предложить более эффективный подход?
import numpy as np
import pandas as pd
df = pd.DataFrame({'X_intent' : [1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8],
'Y_intent' :np.ravel([np.repeat(1,8),np.repeat(2,8), np.repeat(3,8)]),
'Values' : [1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8]})
p = pd.DataFrame( {'OrderX': [8,7,6,5,4,3,2,1,8,7,6,5,4,3,2,1,8,7,6,5,4,3,2,1], 'OrderY': np.ravel([np.repeat(1,8),np.repeat(2,8), np.repeat(3,8)])})
p['indx'] = p.OrderX.astype(str)+' '+p.OrderY.astype(str)
df['indx'] = df.X_intent.astype(str)+' '+df.Y_intent.astype(str)
res = list()
for i in p["indx"]:
res.append(np.where(df['indx'] == i))
res = [np.asscalar(item[0]) for sublist in l for item in res]
df.iloc[res]
Спасибо за вашу помощь.