ElectricityDemand = []
FuelDemand = []
dict_of_results = {}
data = pd.read_csv('data.csv', sep = ';', index_col = False)
# data.csv looks like the following, containing 2 objects:
# parameter1;parameter2;parameter3
# 388;2000;14
# 293;1890;12.6
list_of_objects = [list(row) for row in data.values]
for item in range(len(list_of_objects)):
MyObject = Class(parameter1 = list_of_objects[item][0],
parameter2 = list_of_objects[item][1],
parameter3= list_of_objects[item][2])
# Load more datafiles and define some constants
# Iterating over every hour of a year and calculate the ElectricityDemand and FuelDemand of the object
for h in range(8760):
# ...calculate here...
ElectricityDemand.append(MyObject.electricity_demand)
FuelDemand.append.append(MyObject.fuel_demand)
results = pd.DataFrame({'ElectricityDemand': ElectricityDemand, 'FuelDemand': FuelDemand})
for i in range(len(list_of_objects)):
results['iter'] = i
dict_of_results[i] = results.copy()
Эта программа выполняет итерации по часам года (8760 часов) - см. Внутренний l oop - для 2 различных объектов (см. Внешний диапазон l oop: (len (list_of_objects)) ).
Я хочу сохранить результаты внутреннего l oop в виде списков (ElectricityDemand и FuelDemand), затем в (временном) DataFrame ( results ) и затем сохранить DataFrame в словаре, впоследствии продолжая ту же процедуру для объекта 2.
На этом этапе я получаю словарь с 2 DataFrames, каждый из которых имеет 17520 (8760 * 2) наблюдений.
Я не могу найти свою ошибку ... Как мне получить словарь с двумя фреймами данных (каждый с 8760 наблюдениями)?
Мой вывод сейчас: dict_of_results
Тип: dict
Размер: 2
Значение: {0: DataFrame, 1: DataFrame}
в 0: DataFrame
Тип: DataFrame
Размер: (17520, 2)
Значение: имена столбцов: ElectricityDemand и FuelDemand
и 17520 строк для ElectricityDemand и FuelDemand (данные объекта 1 (из входных данных 388; 2000; 14 ) и объекта 2 (из входных данных 293; 1890; 12,6 )).
в 1: DataFrame
Точно так же, как в 0: DataFrame
Мой желаемый вывод: dict_of_results
Тип: dict
Размер: 2
Значение: {0: Фрейм данных, 1: Фрейм данных}
в 0: Фрейм данных
Тип: Фрейм данных
Размер: (8760, 2)
Значение: имена столбцов: ElectricityDemand и FuelDemand
и 8760 строк для одного объекта (из входных данных 388; 2000; 14 )
в 1: DataFrame
НЕ точно такой же, как в 0: DataFrame, но Size : (8760, 2) ElectricityDemand и FuelDemand с соответствующими строками / значениями / результатами для второго объекта (из входных данных 293; 1890; 12,6 ).