このようなヘッダー付きの tsv ファイルがあります。
Header1 header2 header3 header4 header5
Aa bb dd cc aa
Bb bb aa cc bb
Cc bb cc dd aa
Aa bb ee cc dd
Aa vv ff gg ii
私は次のような辞書を持っています{‘0’: ‘aa’, ‘1’:’bb’,’3’:’cc’}
このファイルを解析して、インデックス 0 のすべての列が aa、インデックス 1 が bb、インデックス 3 が cc であるファイルから行を返すことになっています。つまり、最初の列が aa、2 番目の列が bb、4 番目の列が cc であるすべての行を取得する必要があります。したがって、tsv ファイルの最初の 1 行目と 4 行目を印刷できるはずです。
Aa bb dd cc aa
Aa bb ee cc dd
私のコード スニペットは、これらすべての条件の交点を提供するのではなく、各条件が満たされるすべての行を提供します。スクリプトの修正を手伝ってください。上記で指定された辞書は、index dict という名前が付けられます。
data=csv.reader(open(tsvfile,'rb'),delimiter = "\t")
fields =data.next()
print "-------------------------Rows Filtered-------------------------"
for key,value in indexdict.items():
for row in data:
if row[key]== value:
linecount=linecount+1
print row`