【发布时间】:2016-04-09 12:37:02
【问题描述】:
我是 python 新手,我正在尝试通过匹配特定字符串来减少 csv 文件记录。我想将匹配的行写入一个新的 csv 文件。
这是一个示例数据集:
我要做的是通过搜索所有行以查找特定匹配的关键字(例如,仅将包含 WARRANT ARREST 的行写入图像上可以看到的行)到一个新的 csv 文件。
这是我目前的代码:
import csv
with open('test.csv', 'a') as myfile:
with open('train3.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',')
for r in spamreader:
for field in row:
if field == "OTHER OFFENSES":
myfile.write(r)
test.csv 为空,train3 包含所有记录。
【问题讨论】:
-
您通常可以通过简单地添加一些
else语句来了解正在发生的事情。例如,在if field == "OTHER OFFENSES":之后,你可以写else: print(field)或else: print(r)。一旦您看到实际数据,您的比较失败的原因可能会变得很明显。例如。每一行之后可能会有一个换行符,这会弄乱比较(这是上次有人问这个问题而我回答的问题的原因)。除了if field == "OTHER OFFENSES",你可以试试if "OTHER OFFENSES" in field: -
在您的数据集示例中,没有一个字段等于
"OTHER OFFENSES"。所以你会期望输出文件是空的。 -
您的具体问题是什么?
标签: python csv split match keyword