Как вывести на печать названия датафреймов?

for data in [features_train, features_valid, target_train,
             target_valid, features_test, target_test]:
    print(data)

Хочу чтоб на печать выходило название датафрейма а не сам датафрейм. Помогите победить эту задачу!


Ответы (1 шт):

Автор решения: CrazyElf

А что такое "название датафрейма"? Имя переменной, в которой лежит датафрейм? В переменной нет имени в явном виде. Если только сделать наоборот - передавать название датафреймов в виде строк, а потом брать по имени сами датафреймы из списка переменных:

for data in ['features_train', 'features_valid', 'target_train',
             'target_valid', 'features_test', 'target_test']:
    print(data) # печать имени датафрейма
    df = globals()[data] # сам датафрейм
    df = locals()[data] # или так - зависит от того, где переменные

Но ещё лучше - заранее разместить ваши датафреймы в словаре и обращаться к нему:

dataframes = {
    'features_train': features_train,
    'features_valid': features_valid,
    'target_train': target_train,
    'target_valid': target_valid,
    'features_test': features_test,
    'target_test': target_test,
}

for name, df in dataframes.items():
    print('Имя датафрейма', name)
    print('Сам датафрейм', df)
→ Ссылка