Вызовите groupby
с помощью лямбды и выполните итерации по объекту группы, чтобы разделить их в список DataFrames:
df_list = [g for _, g in df.groupby(by=lambda x: x[:3], axis=1)]
Если вместо этого вы хотите отобразить {prefix: dataFrame}, вы можете создать словарь:
df_dict = {k: g for k, g in df.groupby(by=lambda x: x[:3], axis=1)}