2017-01-09 25 views
-1

私のCSVファイルから特定の行を取得しようとしています。新しいCSVファイルを作成するよりも、それらを作成しようとしています。検索している行には、同じ値がリストに含まれている必要があります。Pythonはcsvファイルから特定の行を取得します

myList=[HELLO, WORLD, DAD] 

csv_file=  doc_01 | doc_02 | doc_03 | doc_04 | 
     HELLO| 0,002 | 0,8 | 00,5 | 0,003 | 
     WORLD| 0,1 | 00,9 | 1,2 | 2,1 | 
     MOM | 00,3 | 00,7 | 0,22 | 0,55 | 

私の意図は、リスト内の値は、私はすべてのcorrisponding行を取りたいCSVファイルの最初の列にある場合は、リストを反復処理することであると。それを行うための方法はあり

new_csv=  doc_01 | doc_02 | doc_03 | doc_04 | 
     HELLO| 0,002 | 0,8 | 00,5 | 0,003 | 
     WORLD| 0,1 | 00,9 | 1,2 | 2,1 | 

結果は次のようにすべきですか?

+0

を作成しますかもしそうなら、それについて議論させてください。 – Humbalan

+0

質問は不明です。 – Dmitry

+2

あなたは単にcsvを読むことができます。 'pandas'をデータフレームに変換し、必要な行を簡単に選択できます。 – Cleb

答えて

2

delimiter = '|'を指定する必要があります。あなたがデータを読み取る際に

import pandas as pd 
import csv 

df= pd.read_csv('C:\Users\shmathew\Desktop\Sample\sample.txt',sep='|') 
myList=['HELLO', 'WORLD', 'DAD'] 
print df[df['doc_01'].isin(myList)] 

または

infile=open('C:\Users\shmathew\Desktop\Sample\sample.txt', 'rb') 
csv_reader = csv.reader(infile,delimiter='|') 
for row in csv_reader: 
    if row[0] in myList : 
     print (row) 

は、あなたが何をしようとしましたか?同じ出力

doc_01 doc_02 doc_03 doc_04 doc_05 
    0 HELLO 0,002 0,8 00,5 0,003 
    1 WORLD 0,1 00,9 1,2 2,1 
関連する問題