我有一个.csv文件如下(片段)。Python:比较一个列表的索引到另一个,追加第二个列表值到第一个列表
Country,Year,GDP ($US),Population
Angola,2002,11431738368,10760510
Angola,2005,32810672128,11706954
Antigua and Barbuda,2002,714677760,67448
Antigua and Barbuda,2005,875751360,68722
Argentina,2002,1.02E+11,38331121
Argentina,2005,1.83E+11,39537943
Armenia,2002,2376335104,3013818
Armenia,2005,4902779392,2982904
...
我需要找到五个最低GDP /流行国家的2002,然后找到其2005年国内生产总值相应/流行值,然后计算的差异和百分比差异。某些记录有GDP或人口值的空白,我省略。
到目前为止,我用
import csv
import operator
data = open('file.csv')
read_data = csv.reader(data)
thisthing = []
for line in read_data:
#find 2002 GDP/Pop, omit blanks, append to list
if line[7] == '2002' and line[8] != ' ' and line[9] != ' ':
thisthing.append([line[0], (float(line[8])/(int(line[9])))])
thisthing.sort(key=operator.itemgetter(1))
这样就产生了通过线打印线如下列表(国家,GDP/POP):
['Burma (Myanmar)', 69.07171351277908]
['Burundi', 89.45864552423431]
['Congo (Dem. Rep.)', 99.23033109735835]
['Ethiopia', 109.33326343550823]
['Eritrea', 142.8576737907048]
['Guinea-Bissau', 151.110429668747]
['Afghanistan', 159.7524117568956]
['Malawi', 159.7614709537829]
['Sierra Leone', 174.6506490278577]
我想现在通过“的read_data迭代回',在'thisthing'中使用国家名称作为条件以及我的空白预防条件
and line[8] != ' ' and line[9] != ' ':
选择并附加2005年的国内生产总值/流行音乐'thisthing'
我不知道从哪里开始这样做,我一直在这里呆了一周左右...任何帮助将不胜感激。
您的指数看起来很奇怪。索引2至6的列在哪里? '国家'是0,但'年'是7. –
嗨迈克,这是一个编辑文件。这些索引都是他们应该为完整文件所做的。 – Rookierookie
最好把你的问题归结为真正有用的东西。 这有助于开发一个真正做你想要的解决方案。 –