2017-01-28 9 views
0

私は、大量のデータがプロットされ、ソートされ、ソートされなければならないCSVファイルを持っています。データの例は以下の通りです。特定の行のデータをスキップする - Python

10, 50, 60, 74, 19 
10, 55, 68, 93, 10 
10, 84, 92, 75, 32 
10, 58, 39, 82, 12 
20, 15, 12, 84, 35 
20, 53, 13, 96, 57 
20, 53, 32, 64, 67 
20, 56, 31, 29, 18 
30, 85, 92, 18, 95 
30, 75, 12, 92, 12 
... 
90, 35, 21, 95, 47 
100, 67, 96, 73, 47 
100, 86, 32, 62, 32 
100, 32, 53, 69, 57 
100, 34, 64, 72, 34 

私が探しているのは、最初の行、4行目、8行目などを取得してリストに入れることです。それは、次のような見える:

column1 = ['10', '20', '30', ..., '100'] 
column3 = ['60', '12', '92', ..., '73'] 
column5 = ['19', '35', '95', ..., '47'] 

注:データセットから最初の行は、出力の最初の列でなければならない、データから2行目は出力の第2列である、等 また、私はどの列をリストに入れるのか(そしてどの行も同じように)コントロールできるようにしたいのです。

また、どのn行目から始めたいのかを調整する方法を探しています。私たちは2行目で開始した場合、出力は以下のような次のようになります。

column1 = ['10', '20', '30', ..., '100'] 
column3 = ['68', '13', '12', ..., '32'] 
column5 = ['10', '35', '12', ..., '32'] 

これは、これまで私が持っているコードです:

import numpy as np 
import matplotlib.pyplot as plt 
import csv 

column1 = [] 
column2 = [] 
column4 = [] 

with open('csvFile.csv', 'rb') as f: 
    w = csv.reader(f, delimiter = ',') 
    for i, line in enumerate(w): 
     if i == 0 or i == 1: 
      pass # Skip first row 
     else: 
      column1.append(line[1]) 
      column2.append(line[2]) 
      column4.append(line[4]) 

は、これは私の列のすべての値を与え、私は望んでいない。たぶん私はこれを思っていました。私が思っていたのは、リストのインデックスを作成し、私が望まない値を取り除くことでした(私のデータセットはここに示されているものよりもはるかに大きい - 私は最初に合計26行数字(つまり、後にデータを含む10の26行、データのある20の26行、30のうち26など)

+1

私は最初の行、4行目、8行目についてとても混乱しています。 1列目、3列目、5列目のようですか? – Bobby

+0

私は4行ごとに1回データを探しています。たとえば、2行目(10,55,68,93,10)から始めると、6行目(20,53,13,96,57)、10行目(例では表示されません) 。私はまた、どの行から始めたいのかをコントロールする必要があります。 –

答えて

1

iが4の倍数であるかどうかを確認できます。それが4の倍数でない場合は、スキップ

with open("data", 'rb') as f: 
    w = csv.reader(f,delimiter = ",") 
    for i, line in enumerate(w): 
     if (i % 4 == 0): 
      column1.append(line[0]) 
      column2.append(line[1]) 
      column3.append(line[2]) 
+1

'if(i%4!= 0):'をテストし、 'else'ブランチを渡して使用するのではなく、' if(i%4 == 0):#append lines'を使うのはなぜですか? –

+0

私は不気味で、そのことを考えていなかったので、 – user2386276

+0

私はそれを見て今、意味があります。なぜ私は知らないうちにこれについて考えなかったのですか?しかし、今私は実際にどの行から始めるかを実際どのように制御するのですか? –

関連する問題