2016-04-28 161 views
1

我想在Python中阅读一个大的csv文件;它有700个属性和101533行。我试着阅读使用pandas.read_csv命令的文件,但它给了内存问题,那么我想这个解决方案阅读大型CSV文件

import numpy as np 
with file("data.csv", "rb") as f: 
    title = f.readline() # if your data have a title line. 
    data = np.loadtxt(f, delimiter=",") # if your data splitted by "," 
    print np.sum(data, axis=0) # sum along 0 axis to get the sum of every column 

,但它并不适用于大规模数据集的工作,但工作正常,小的数据集。我如何在python中读取这个文件?

enter image description here

回答

0

您可以使用csv模块加载您csv文件,并使用itertools.izip()功能,以获得再列的发电机由next()拿到第一列。

请注意,csv.reader()返回一个阅读器对象,它是一个类似于对象的迭代器(一次迭代),这意味着它不会浪费你的内存并且会按需生成行。 :

import csv 
from itertools import izip 
with open("data.csv", "rb") as f: 
    reader = csv.reader(f) 
    print sum(next(izip(*reader))) 
+0

不,它也没有帮助。没有任何反应,光标移动到下一个单元 – hyeri

+0

@hyeri你有什么样的错误? – Kasramvd

+0

它没有给我任何错误,当我点击“运行单元格”按钮时,光标在第二个单元格中移动 – hyeri