2013-10-30 43 views
0

我有一个非常大的csv文件,每天产生大约30,000行和25列。我需要过滤此文件以仅包含对我感兴趣的行。 它的形式是:在python中过滤csv文件中的特定行

date, time, user, entity, party1, party2 
20131001, 00:01, user1, ABC, XXX, XXX 
20131002, 00:01, user2, XYZ/ABC, XXX, ABC 
20131003, 00:01, user1, DEF, ABC, XXX 

比如我需要删除具有实体= ABC的所有行。 我想任

  1. 读取该文件,并删除包含ABC的每一行,但会摆脱我真正需要的行。我只想删除要删除的实体列中包含ABC的行。

  2. 在python中使用csv模块并尝试实现相同。我读过csv中可用的函数,但似乎没有提供任何让我按字段按列分隔的内容。

我不一定要在代码中寻找答案,但任何关于如何解决这个问题的一般建议将受到欢迎。

非常感谢。

+0

你不认为这会属于'主要是基于意见的类别? – thefourtheye

+1

对不起,在这里找到答案: http://stackoverflow.com/questions/10530301/how-to-filter-from-csv-file-using-python-script – Eric

回答

0
for mycsv_line in csv_reader: 
    if mycsv_line[4] != "ABC" : 
    #append to result 
1

,你想用Python的csv模块是什么,你的建议是如你当然可以这样做@DhruvPathak概述了他的答案(更好here),但我认为这是更简单的用一个线awk脚本来做到这一点:

$ awk -F ', ' '{ if ($4 != "ABC") print; }' < file.txt 
date, time, user, entity, party1, party2 
20131002, 00:01, user2, XYZ/ABC, XXX, ABC 
20131003, 00:01, user1, DEF, ABC, XXX 

其中file.txt包含您的数据。