Python 如何为数据帧指定内存分配?

Python 如何为数据帧指定内存分配?,python,pandas,memory-management,out-of-memory,Python,Pandas,Memory Management,Out Of Memory,我正在尝试合并两个大熊猫数据帧,但它在我的4GB RAM笔记本电脑上引发了内存错误,所以我在计算机实验室尝试了16GB RAM,但仍然引发了相同的错误(在同一行代码崩溃) 我无法解决为什么熊猫会产生同样的错误,而不使用16GB的RAM空间。请帮我解决这个问题 feature_AtomPairs2DFingerprintCount=pd.read_csv("/home/adarsh/big_data_features/AtomPairs2DFingerprintCount.csv") featur

我正在尝试合并两个大熊猫数据帧,但它在我的4GB RAM笔记本电脑上引发了内存错误,所以我在计算机实验室尝试了16GB RAM,但仍然引发了相同的错误(在同一行代码崩溃)

我无法解决为什么熊猫会产生同样的错误,而不使用16GB的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')

resource.getrlimit调用将告诉您各种系统资源的硬限制和软限制。为了记忆

    soft, hard = resource.getrlimit(resource.RLIMIT_AS)
softlimit是一个值,当达到该值时,操作系统通常会限制进程或用信号通知进程。硬限制表示软限制值的上限。可以通过对resource.setrlimit()的适当调用来修改softlimit。硬限制通常由系统管理员设置的系统范围参数控制。虽然可以降低,但不能通过用户级进程提高。据报道,这在Linux上有效,但在MacOS或Windows上无效,因为这两个值都返回-1


我怀疑您的进程大小与操作系统的最大值相差无几。

您也能给我们看看您的代码吗?除了增加内存,可能还有优化的空间。如果数据帧很大,请使用。很可能,您的代码正在执行您不希望它执行的操作,可能是一个意外的笛卡尔连接。试着在一个较小的子集上做合并,看看会发生什么。@ JjaloNeN,ken Wei,我已经添加了代码。文件有多大,哪条线恰好是大数据文件的内存错误(大概是一个合并?),那么熊猫本身可能不适合你的需要,可能会考虑寻找火花之类的东西。