Я пишу скрипт, который добавляет мои смоделированные данные в фрейм данных pandas для n имитаций в моем цикле.Когда я выбираю значение n> ~ 15, он падает, я думаю, что моя df становится слишком большой для хранения в памяти во время выполнения моих симуляций.
Я создаю пустой DF
df = pd.DataFrame(
{'gamma': [],
'alpha': [],
'focus': [],
'X' : [],
'Y' : [],
'Z' : [],
'XX' : [],
'img1' : [],
'img2' : [],
'num_samples' : [],
'resolution' : []})
for i in range(n):
#some simulation stuffs
, а затем заполняю свой фрейм данных значениями
df.loc[i] = (
{'gamma': gamma,
'alpha': alpha,
'focus': focus,
'X' : X,
'Y' : Y,
'Z' : Z,
'XX' : XX,
'img1' : img1,
'img2' : img2,
'num_samples' : num_samples,
'resolution' : resolution})
Я пробегаю это n раз, чтобы заполнить свой df, а затемсохрани это.Однако это продолжает терпеть крах.Я подумал, что dask.dataframe может быть хорошим здесь:
df = dd.from_pandas(pd.DataFrame(
{'gamma': [],
'alpha': [],
'focus': [],
'X' : [],
'Y' : [],
'Z' : [],
'XX' : [],
'img1' : [],
'img2' : [],
'num_samples' : [],
'resolution' : []
}), chunksize=10)
и затем заполнить мои данные
df.loc[i] = {'probe': wave.array.real,
'gamma': gamma,
'alpha': alpha,
'focus': focus,
'X' : X,
'Y' : Y,
'Z' : Z,
'XX' : X,
'img1' : img1,
'img2' : img2,
'num_samples' : num_samples,
'resolution' : resolution}
Но я получаю ошибку '_LocIndexer' object does not support item assignment
У меня естьрассмотреть возможность создания файла pd.df внутри цикла и сохранения его для каждого смоделированного значения.Но это кажется неэффективным, и я думаю, что я должен быть в состоянии сделать это в течение дня.
Любые предложения?
Я работаю Windows, 20 ГБ ОЗУ, SSD, i7, если это помогает