2017-07-07 57 views
0

我想合併兩個大熊貓數據框,但它在我的4GB RAM筆記本電腦上引發內存錯誤,所以我在16 GB RAM的計算機實驗室中嘗試過,但它仍然引發同樣的錯誤(對同一行代碼崩潰的) 。如何爲熊貓數據框指定內存分配?

我無法解決爲什麼熊貓引發同樣的錯誤,而不是使用16 GB的RAM空間。請幫我解決它。

feature_AtomPairs2DFingerprintCount=pd.read_csv("/home/adarsh/big_data_features/AtomPairs2DFingerprintCount.csv") 
feature_AtomPairs2DFingerprinter=pd.read_csv("/home/adarsh/big_data_features/AtomPairs2DFingerprinter.csv") 

merged_data_2=pd.merge(feature_AtomPairs2DFingerprinter,feature_AtomPairs2DFingerprintCount,how='left') 



MERGED_DATA=pd.read_csv('/home/adarsh/comp_des.csv') 


total_merged=pd.merge(MERGED_DATA,merged_data_2,how='left') 
+0

你能告訴我們你的代碼嗎?除了增加內存之外,其可能還有優化的空間。 – jsalonen

+0

如果數據幀很大,請使用[dask](https://dask.pydata.org/en/latest/)。 – shivsn

+1

可能是,你的代碼正在做你不打算的事情,也許是偶然的笛卡爾連接。嘗試在較小的子集上進行合併,看看會發生什麼。 –

回答

0

的resource.getrlimit電話會告訴你,爲各種系統資源的硬性和軟性限制。對於內存

soft, hard = resource.getrlimit(resource.RLIMIT_AS) 

軟限制是當達到時操作系統通常會限制進程或通過信號通知它的值。硬限制表示軟限制值的上限。可以使用適當的resource.setrlimit()調用修改軟限制。硬限制通常由系統管理員設置的系統範圍參數控制。它不能通過用戶級別的流程提升,儘管可以降低。據報道,這可以在Linux上運行,但不適用於兩個值均返回-1的MacOS或Windows。

我懷疑你正在運行的操作系統的最大進程大小。