【发布时间】:2018-05-03 08:11:13
【问题描述】:
我几乎在整个互联网上进行了搜索,但不知何故,这些方法似乎都不适用于我的情况。
我有两个大的 csv 文件(每个都有一百万多行,大小约为 300-400MB)。他们使用 read_csv 函数很好地加载到数据帧中,而无需使用 chunksize 参数。 我什至对这些数据执行了一些小的操作,例如新列生成、过滤等。
但是,当我尝试合并这两个帧时,我得到了 MemoryError。我什至尝试使用 SQLite 来完成合并,但徒劳无功。手术需要很长时间。
我的电脑是 Windows 7 电脑,内存为 8GB。 Python 版本是 2.7
谢谢。
编辑:我也尝试过分块方法。执行此操作时,我没有收到 MemoryError,但 RAM 使用量激增并且我的系统崩溃。
【问题讨论】:
-
你用什么代码来合并它们?
-
merge_df = pandas.merge(df1, df2, left_on = "Colname1", right_on = "Colname2")
-
您使用的是 64 位版本的 Python 吗?
-
是的。我使用的是 64 位 Python 2.7。目前,Anaconda 4.3(带有 Spyder 3)已安装在我的系统上。
-
你能粘贴每个数据框的前几行吗?很有可能,您正在执行与您预期的操作不同的合并。 (根据我的经验,大多数涉及小于 1GB 的数据帧的连接操作在几秒钟内完成,但这当然取决于连接的类型以及数据的结构。)
标签: python pandas merge out-of-memory