Можно ли создать циклом несколько переменных?
Можно ли создать циклом несколько переменных, заменяя в data_1 - цифру 1 и т. д.?
Задача: подгрузить 20 csv-файлов в 20 датафреймов. Можно вручную, но напрашивается цикл.
data_1 = pd.read_csv('feature_1.csv', sep = ',', names=['id','feature_1'])
data_2 = pd.read_csv('feature_2.csv', sep = ',', names=['id','feature_2'])
и т.д.
Можно ли как-то заменить "1" в переменных и таки образом циклом пробежаться?
Заранее спасибо за помощь.
Ответы (1 шт):
Автор решения: ganz
→ Ссылка
Можно функцией exec, но это вызывает проблемы с безопасностью. Есть варианты использовать генератор списков
data=[pd.read_csv('feature_'+str(it)+'.csv', sep = ',', names=['id','feature_'+str(it)] for it in range(21))]
data=[pd.read_csv(it) for it in ['filea','fileb']]
#доступ осуществляется как
data[1] #где 1 номер файла
#либо так
data=[]
for it in range(1,21):
data.append(pd.read_csv('prefix_of_filename_'+str(it)+'.postfix_file_name'))
Последний вариант более предпочтителен, так как он более удобочитаем