我是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
我读取了不同数据帧df1
,df2
和df3
中的单个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)
答案 0 :(得分:0)
我很惊讶这不会首先产生某种错误。
使用Pandas merge
函数时,您可以这样构造它:
dff = dff.merge(df1, how='left, on='Name') #merge columns are the same so no need to specify right/left