在Python中合并数据框时发生内存错误

时间:2018-08-14 11:08:03

标签: python dataframe memory

我是Python和数据处理的新手。我试图处理一些数据,就像我们在excel中使用Vtool一样。我从2个excel文件导入数据,然后将它们合并并提取另一个excel。我正在使用pd.merge。但是,我收到内存错误。 df1详细信息: dtypes:float64(10),int64(1),object(10) 内存使用量:1.0 MB df2详细信息: dtypes:object(6) 内存使用量:579.2 KB

内存甚至没有那么大。我如何摆脱此内存错误? 这是代码:

dff=pd.DataFrame(list(zip(NameList)),columns=['Name'])

dff = pd.merge(dff,df2, how='left',left_on='Name', right_on='Name') 
#From 1st data sheet
dff.drop(['A','B'], axis=1, inplace=True)
dff = pd.merge(dff,df1, how='left',on='Name')
#From 2nd datasheet
dff.drop(['E','F'], axis=1, inplace=True)

dff.index=dff.index+1


display(dff)

我得到的只是以下错误:

MemoryError

已解决

我读取了不同数据帧df1df2df3中的单个excel文件,并删除了某些属性以消除内存错误后,将它们合并。

dff = df2.merge(df1, how='left',on='Name') 

dff.drop(['A','B'], axis=1, inplace=True)
dfff = dff.merge(df3, how='right',on='Name')

dff.drop(['E','F'], axis=1, inplace=True)

1 个答案:

答案 0 :(得分:0)

我很惊讶这不会首先产生某种错误。

使用Pandas merge函数时,您可以这样构造它:

dff = dff.merge(df1, how='left, on='Name') #merge columns are the same so no need to specify right/left