2016-03-23 26 views
-1

.csvファイルを読んで何らかの操作をしなければなりません。特に、データが異なる列に格納されている.csvを読まなければなりません。特に、データの形式は次のとおりです。Python:効率的な.csvファイルの読み込み方法

myfile_0.csv 

Time InfD Com ComN 
    0 3  4 0 
    1 2  5 1 

ファイルには、多くのエントリが含まれていると私は別のparametersするためのプロセスが本当に遅いことをしなければなりません。以下で私が達成しなければならない課題

for i in parameters: 
    f = folder+'myfile_%d.csv'%i 
    df = pd.read_csv(f) 
    D = df.InfD/V 
    C = (df.Com/df.ComN) 
    size = TC - len(C) 
    if len(C) < TC: 
     CC = np.lib.pad(C, (0,size), 'constant', constant_values=(1)) 
     DD = np.lib.pad(D, (0,size), 'constant', constant_values=(0)) 
     cf = CC*(1-DD) 
    else: 
     C = C[0:TC] 
     D = D[0:TC] 
     cf = C*(1-D) 

同じ問題を解決するのがより効率的かどうか疑問に思っています。

+0

を試してみてください。その周りに方法はありません。 –

+0

['line_profiler'](https://github.com/rkern/line_profiler)を使ってボトルネックを特定し、それらの行を最適化してみてください。また、あなたの質問は今、はい/いいえの質問です。答えは「はい、おそらく」です。 – ChrisP

+0

私はパンダのデータフレームの代わりに 'import csv'を使用することを考えていました – emax

答えて

0

はあなたがparameters` `内のすべての値のため、ファイル全体を読み込む必要がしようとしているのpython csv library

import csv 
with open('myfile_0.csv', 'rb') as csvfile: 
    reader = csv.reader(csvfile, delimiter=' ', quotechar='|') 
    for row in reader: 
     print ', '.join(row) 

# output: 
# Time, InfD, Com, ComN 
# 0, 3, 4, 0 
# 1, 2, 5, 1 
関連する問題