Создайте таблицу поиска и сопоставьте значения, используя базовый numpy array
. Это предполагает целочисленные имена столбцов.
u = np.zeros(df1.columns.max()+1, dtype=int)
u[df1.columns] = df1.iloc[0].values
u[df2.values]
array([[35, 23, 32, 23, 23, 35],
[12, 78, 78, 90, 78, 23],
[78, 35, 23, 60, 60, 32]])
Если есть значения, которые могут не соответствовать значению в df1
:
u = np.full(df1.columns.max()+1, np.nan)
u[df1.columns] = df1.iloc[0].values
u[df2.values]
А затем fillna
с df2
при желании.