【问题标题】:MemoryError when perforimg a pandas inner merge执行熊猫内部合并时出现内存错误
【发布时间】:2020-08-05 10:31:25
【问题描述】:

我正在尝试使用 pandas 合并两个文件,其中一个非常大(6gb)。每当我尝试它时,都会出现内存错误,因为我的 RAM(8gb) 可能太小而无法处理。关于如何解决这个问题的任何想法? 我的代码是:

 import pandas as pd
broad_matched = pd.read_csv("FILE A", delim_whitespace=True)
broad_matched2 = broad_matched[~(broad_matched['P'] >= 0.05)]
SNPs= pd.read_csv("FILE B", 
                  sep='\t', 
                 names=["#CHROM","POS1","POS", "rsID","E","F"])
broad_matched2=broad_matched2.drop(columns=['LOG.OR._SE','ID','REF','ALT','ERRCODE','Z_STAT','OR','OBS_CT','TEST','FIRTH.','A1','#CHROM'])
Table1=pd.merge(broad_matched2,SNPs,on='POS',how='inner').dropna()
Table1.to_csv(r'D:/Table1', index = False)

【问题讨论】:

  • pandas 将文件保存在 RAM 中,因此对于 pandas,您无法使用 8GB,您需要更多的 ram。尝试 。使用 google codelab 在线完成,它为您提供 25gb 内存或任何其他在线笔记本
  • 尝试使用 Dask 库

标签: python pandas merge


【解决方案1】:

你应该看看this post。该解决方案涉及使用 dask 数据帧。

【讨论】:

    猜你喜欢
    • 2014-06-05
    • 2021-02-22
    • 2020-09-26
    • 2020-07-31
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    相关资源
    最近更新 更多