我有兩個大型數(shù)據(jù)幀,分別稱為df0(1.2億個obs)和df1(5000萬個obs)。它們具有相同的44個變量(作為列)。我需要附加數(shù)據(jù),以便新數(shù)據(jù)框具有120 + 50 = 170百萬個觀測值和44列。我用:frames = [df0, df1]df = pd.concat(frames, ignore_index=True)ordf = df0.append(df1, ignore_index=True)他們工作得很好。但是當(dāng)我使用刪除df0和df1時del df0del df1系統(tǒng)不會釋放內(nèi)存。我已經(jīng)讀過stackoverflow,這對于python /其他語言來說是很典型的。但是,在此之后,我遇到了內(nèi)存問題,并且python無法釋放該內(nèi)存。關(guān)于如何避免消耗太多內(nèi)存的任何建議?已解決:正如juanpa.arrivillaga所指出的,尚存的引用將意味著該數(shù)據(jù)幀將不會被刪除。一旦刪除了對數(shù)據(jù)幀的所有引用,刪除數(shù)據(jù)幀后就釋放了內(nèi)存。
1 回答

揚帆大魚
TA貢獻1799條經(jīng)驗 獲得超9個贊
import gc
del df0
del df1
gc.collect()
原因是刪除df0和df1時,程序僅刪除對內(nèi)存中數(shù)據(jù)的引用。執(zhí)行g(shù)c.collect()時,它將檢查內(nèi)存中未使用的那些數(shù)據(jù)并將其刪除。
添加回答
舉報
0/150
提交
取消