我有文本数据的.tsv文件,链接在这里: world bank data操纵TSV文件
我需要的日期将数据读入的数据结构(任何数据结构),只保留行“7/1/2000“或7/1/2010”,并且只保留原始19列中的7个,我对编程非常陌生,但我认为这是一个相当简单的任务,我在这里有不完整的代码:
import math
import csv
import re
fhand=open("world_bank_indicators.txt", "rU")
reader=csv.reader(fhand, dialect="excel", delimiter="\t",skipinitialspace=True)
data=dict()
mylist=list()
#doesn't print headers, however
for row in reader:
if row[1]=="7/1/2000" or row[1]=="7/1/2010":
print row[0], row[1], row[9], row[4], row[6], row[5], row[19]
更新,版本使用dictreader:
import math
import csv
import re
fhand=open("world_bank_indicators.txt", "rU")
reader=csv.reader(fhand, dialect="excel", delimiter="\t", lineterminator="\n")
reader=csv.DictReader(fhand, delimiter="\t")
myset=set()
mydict=dict()
mylist=list()
for row in reader:
mydict["Date"]=row["Date"]
print mydict
然而,这似乎只写一个条目{日期:7/1/2010}我的字典
所以,我明显的问题是:
1)这并打印的行和列我想要的数据,但是,它不打印每列的标题2)显然,没有任何数据结构添加到任何数据结构中,以便我用数据执行任何计算
什么(痛苦明显,我确定)我在这里想念的东西?我怎样才能完成这两个简单的任务?
发布示例数据文件(或指向示例数据文件的链接)会很有帮助。 – senshin
使用一个csv.DictReader,它将以字母作为关键字将行返回为字典。 – Mark
我尝试过使用dictreader,但是在编写某些键:值对到我选择的列表或字典时,我一直在收到问题。 – Mike