代码之家  ›  专栏  ›  技术社区  ›  Erfan

熊猫在读取相当小的CSV时内存不足

  •  2
  • Erfan  · 技术社区  · 6 年前

    我想读一小段 csv 文件,但在等待3到4分钟后,我的内存一直不足。

    我试过谷歌搜索,人们遇到的大多数问题,都是8GB及以上的文件。
    这个是 45mb ,大致有 160k rows 64 columns ,所以我的猜测是其他事情出了问题。

    我试过不同的设置 pd.read_csv() 功能:
    sep=','
    quotechar='"'
    low_memory=False

    不起作用,这是密码 不工作 (也尝试了StringIO):

    代码1

    pd.read_csv(r'C:\Users\Erfan Nariman\Desktop\ongevallen.txt', 
                sep=',',
                quotechar='"',
                encoding='latin1')
    

    代码2

    rawdata = open(r'C:\Users\Erfan Nariman\Desktop\ongevallen.txt', 'r', )
    rawtext = rawdata.read()
    
    pd.read_csv(StringIO(rawtext), 
                sep=',',
                quotechar='"',
                encoding='latin1')
    

    所以下面 工作 : 将文件上载到dropbox并用 requests

    def read_ongevallen():
    
        url = 'https://dl.dropboxusercontent.com/s/1i7nne11tc1ki4d/ongevallen.txt?dl=0'
    
        rawdata = requests.get(url).text
    
        df = pd.read_csv(StringIO(rawdata), 
                    sep=',',
                    quotechar='"',
                    encoding='latin1',
                    low_memory=False)
    
        return df
    

    有点不明白为什么最方便的方法不起作用而后者起作用?

    Link to file for testing

    0 回复  |  直到 6 年前