2017-01-09 40 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