df[list_of_cols], df.loc[:, cols], filter(regex=...), select_dtypes; порядок в списке задаёт порядок в результате.
Разбор
- Опечатка в имени → KeyError.
reindex(columns=...) позволяет отсутствующие → NaN.
- Не используйте
df.col в динамических именах.
- Для широких таблиц храните списки колонок явно.
Итог
Явный список колонок — предсказуемый контракт схемы.