Создайте словарь для определения вашего отображения и используйте pd.MultiIndex.from_tuples
.При необходимости вы также можете указать names=['level_0', 'level_1']
для добавления имен.
import pandas as pd
d = {'A': 'AB', 'B': 'AB', 'C': 'CD', 'D': 'CD'}
df.columns = pd.MultiIndex.from_tuples([*zip(map(d.get, df), df)])
# Equivalently
# df.columns = pd.MultiIndex.from_tuples([(d[col], col) for col in df.columns])
Вывод:
AB CD
A B C D
Index
1 0.25 0.3 0.25 0.66
2 0.25 0.3 0.25 0.66
3 0.25 0.3 0.25 0.66