所以我在这个线程中找到了解决问题的大部分方法:Use Python to select rows with a particular range of values in one column
但是在实现代码时,我遇到了一个我无法理解的错误。我试图从citibike数据中提取订户的数据行(这里的信息:http://www.citibikenyc.com/system-data)
代码如下:
import csv
with open("E:/Dropbox/PPS/CitiBikeData/2014_Data.csv") as input, open("E:/Dropbox/PPS/CitiBikeData/subscribers.csv", "w") as output:
reader = csv.DictReader(input, dialect="excel-tab")
fieldnames = reader.fieldnames
writer_output = csv.DictWriter(output, fieldnames, dialect="excel-tab")
writer_output.writeheader()
for row in reader:
if int(row['gender']) > 0:
writer_output.writerow(row)
我得到的错误是:
^{pr2}$我知道什么是KeyError(从阅读本文https://wiki.python.org/moin/KeyError)开始,但我不知道为什么会出现这个错误,或者如何修复它。在
您下载的数据不是制表符分隔的。您使用了错误的CSV方言打开它。在
删除
dialect
参数,默认值(逗号分隔)适合以下格式:由于}或{},在这种情况下,您可以简单地测试是否不等于
^{pr2}$gender
列是'0'
或{'0'
,并为自己节省一个int()
调用:它使用生成器表达式将所有筛选的行传递给
DictWriter.writerows()
(复数)。在相关问题 更多 >
编程相关推荐