如何解决使用pandas_dedupe执行地址匹配时出现内存错误
我正在尝试使用pandas_dedupe进行地址匹配。
我通过地址将文件“帐户”与较大的文件“主”进行匹配。 “主”文件包含760万行和10列,“帐户”文件包含1.9万行和26列。
由于内存错误,我不得不将“主”文件分解为3个数据帧并进行连接。
代码如下:
import pandas as pd
import numpy as np
accounts = pd.read_csv("X:\Data\Accounts.csv",sep=',',encoding='latin-1')
first = pd.read_csv("X:\Data\First.csv",encoding='latin-1',low_memory=False )
second = pd.read_csv("X:\Data\Second.csv",low_memory=False )
third = pd.read_csv("X:\Data\Third.csv",low_memory=False )
frames = [first,second,third]
master = pd.concat(frames)
master.reset_index(inplace=True)
dtype=np.int64
import pandas_dedupe
data_final = pandas_dedupe.link_dataframes(master,accounts,["ad1","ad2","ad3","ad4","ad5","postcode"])
MemoryError Traceback (most recent call last)
<ipython-input-24-6353b9717b2f> in <module>
1 import pandas_dedupe
----> 2 data_final = pandas_dedupe.link_dataframes(master,"postcode"])
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas_dedupe\link_dataframes.py in link_dataframes(dfa,dfb,field_properties,config_name)
28 dfa.set_index(['index_field'],inplace=True)
29
---> 30 data_1 = dfa.to_dict(orient='index')
31
32
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py in to_dict(self,orient,into)
1317 )
1318 return into_c((t[0],dict(zip(self.columns,t[1:])))
-> 1319 for t in self.itertuples(name=None))
1320 else:
1321 raise ValueError("orient '{o}' not understood".format(o=orient))
MemoryError:
我尝试了一些技巧来降低内存使用率,但是没有成功。还有什么可以尝试的吗?
非常感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。