Ahoy、大規模なCSVファイルをフィルタリングするPythonスクリプトを作成しています。行内の指定された値が条件と一致する場合、CSVから行を戻す
私は自分の基準を満たす行を保持したいだけです。
私の入力は、私がTotal_Depthは私がデータを読み取るためにthis answerを追ってきた0
ある行を返すようにしたい、次の形式
Locus Total_Depth Average_Depth_sample Depth_for_17 chr1:6484996 1030 1030 1030 chr1:6484997 14 14 14 chr1:6484998 0 0 0
でCSVファイルであります。しかし、行間を解析して、私の状態に合った線を引き出そうとしている。ここで
は私が持っているコードは、これまでです:
import csv
f = open("file path", 'rb')
reader = csv.reader(f) #reader object which iterates over a csv file(f)
headers = reader.next() #assign the first row to the headers variable
column = {} #list of columns
for h in headers: #for each header
column[h] = []
for row in reader: #for each row in the reader object
for h, v in zip(headers, row): #combine header names with row values (v) in a series of tuples
column[h].append(v) #append each value to the relevant column
私は私のデータが辞書形式に今あることを理解し、私は「Total_Depth」キーに基づいて、それをフィルタリングしたいが、私はわかりませんよこれを行う方法。私は関連する行を選択するために 'if'ステートメントを使用することを目指していますが、辞書構造でこれを行う方法はわかりません。
アドバイスをいただければ幸いです。
...
for row in reader: #for each row in the reader object
r = zip(headers, row):
if r['Total_Depth'] == 0:
for h, v in r:
column[h].append(v)
ありがとう@falsetru、それは治療を働いています。 –