Вариант 1
Используйте map
с set_index
df2.columns = df2.columns.map(df1.set_index('french').english)
print(df2)
Вариант 2
Используйте rename
с set_index
:
df2.rename(columns=df1.set_index('french').english.to_dict())
Оба производят:
an def sdsd
0 2 4 6
Порядок столбцов не имеет значения:
df1 = pd.DataFrame({'french': ['un', 'deux', 'trois'], 'english': ['one', 'two', 'three']})
df2 = pd.DataFrame([[1,2,3]], columns=['trois', 'deux', 'un'])
df2.rename(columns=df1.set_index('french').english.to_dict())
three two one
0 1 2 3
df2.columns.map(df1.set_index('french').english)
# Index(['three', 'two', 'one'], dtype='object')