Python从csv文件中检索特定行

时间:2017-01-09 13:28:41

标签: python list csv

我正在尝试从我的csv文件中检索特定行,而不是从它们创建新的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   |

我的目的是遍历列表,如果列表中的值位于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    |

有办法吗?

1 个答案:

答案 0 :(得分: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