簡體   English   中英

在python中的csv文件中過濾特定行

[英]filtering specific rows in a csv file in python

我有一個非常大的CSV文件,大約每天有30,000行和25列。 我需要過濾該文件以僅包含我感興趣的行。 它的形式為:

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

例如,我需要刪除所有具有entity = ABC的行。 我在想

  1. 讀入文件並刪除包含ABC的每一行,但這將擺脫我實際需要的行。 我只想刪除要刪除的實體列中包含ABC的行。

  2. 在python中使用csv模塊並嘗試實現相同的功能。 我已經閱讀了csv中可用的功能,但似乎沒有提供讓我按每列的字段來界定的功能。

我不一定要在代碼中尋找答案,但是任何有關如何解決此問題的一般建議都將受到歡迎。

非常感謝。

正如您所建議的那樣,您當然可以使用Python的csv模塊來做您想做的事情,例如@DhruvPathak在他的答案中概述的內容(最好還是在這里 ),但是我認為使用單行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包含您的數據。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM