Я пытаюсь применить ту же самую обработку к группе данных панд.
Поскольку эти кадры данных большие, у меня недостаточно памяти для их одновременной загрузки. Итак, у меня есть список с соответствующими местоположениями, и я хочу загрузить и проанализировать их один за другим.
Однако с каждой итерацией все больше и больше памяти используется. Я думаю, что кадры данных не удаляются в конце итерации. Я не знаю, как это исправить.
Вот мой код:
folder = 'my/folder'
colors = ['b', 'r']
for i, f in enumerate(glob.glob(folder+'*.txt')):
print(f)
df = pd.read_table(f, index_col=False, header=None, delimiter="\t", names=['chr', 'x', 'y'])
plt.figure(figsize=(32, 8))
for j, chrm in enumerate(df.chr.unique()):
plt.plot(df.loc[df.chr == chrm].x, df.loc[df.chr == chrm].y, label=chrm, color=colors[j])
plt.ylim(0, 200)
plt.legend()
Я должен добавить, что я работаю в Spyder.
Пока я пробовал:
- для добавления
del df
и df=None
в конце цикла
- , чтобы превратить цикл for в функцию и вызвать для него функцию
map
- для использования функции
gc.collect()
из пакета gc
в конце цикла
Кто-нибудь знает, как удалить мой df в конце итерации или альтернативное решение?
Большое спасибо.