Создание нескольких фреймов данных и сохранение их в Excel

#pandas #dataframe #for-loop #random

Вопрос:

Я хотел бы создать несколько фреймов данных, содержащих четыре столбца случайных чисел, и сохранить их в виде отдельных файлов Excel. Я не могу этого достичь, хотя знаю, что это как-то связано с циклом for. Я ценю любую помощь в этом отношении. Мой код выглядит следующим образом:

 import random import numpy as np  locus_list=['0 to  15',' 15 -  30', ' 45 -  60',' 60 -  75',' 75 -  90','-30 - -45', '-45 - -60','-60 - -75', '-75 - -90']; heights_list=[8, 11, 14, 17, 20, 23, 26, 29, 32];   random_heights_list =random.choices(heights_list, k=9) print(random_heights_list);   Surface_selection=['yes','no']; Surface_selection_list =np.array(random.choices(Surface_selection, k=9)) print(Surface_selection_list);  import pandas as pd  df = pd.DataFrame(list(zip(locus_list,random_heights_list,Surface_selection_list,Surface_selection_list)),index=['1','2','3','4','5','6','7','8','9'],columns=['Locus position','Building heights (m)', 'Roof selection for SE', 'Facade selection for SE']); df  

Комментарии:

1. где ваша петля for?

2. Да, где мне это добавить? После df?

3. где у тебя этот твой сценарий? я бы заподозрил, что часть кода df, которая у вас есть, должна находиться в цикле for, нет?

4. для i в диапазоне (5): df = pd.DataFrame(list(zip(locus_list,random_heights_list,Surface_selection_list,Surface_selection_list)),index=[‘1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9’],columns=[‘Положение локуса»,»Высота здания (м)», «Выбор крыши для SE», «Выбор фасада для SE»]); печать(df)

5. Я пробовал это, но это повторяет один и тот же кадр данных 5 раз. Мне нужно 5 разных кадров данных.

Ответ №1:

То, как у вас установлены переменные, вам нужно, чтобы они все были в вашем цикле. Случайные функции вызывались только один раз и использовали переменные, которые создавались каждый раз.

 for i in range (5):   locus_list=['0 to  15',' 15 -  30', ' 45 -  60',' 60 -  75',' 75 -  90','-30 - -45', '-45 - -60','-60 - -75', '-75 - -90']  heights_list=[8, 11, 14, 17, 20, 23, 26, 29, 32]  random_heights_list =random.choices(heights_list, k=9)   Surface_selection=['yes','no']  Surface_selection_list =np.array(random.choices(Surface_selection, k=9))  df = pd.DataFrame(list(zip(locus_list,random_heights_list,Surface_selection_list,Surface_selection_list)),index=['1','2','3','4','5','6','7','8','9'],columns=['Locus position','Building heights (m)', 'Roof selection for SE', 'Facade selection for SE'])  print(df)