2016-04-28 17 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でどのように読むことができますか?あなたのcsvファイルをロードし、next()することにより、第1列を取得し、その後、列のジェネレータを取得するためにitertools.izip()機能を使用するためにcsvモジュールを使用することができます

enter image description here

答えて

0

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

「セルを実行」ボタンをクリックすると、カーソルが2番目のセルに移動します。 – hyeri