我有一个 .csv 文件如下(片段)。
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
...
我需要找到 2002 年 GDP/Pop 最低的五个国家,然后找到它们在 2005 年对应的 GDP/Pop 值,然后计算差异和百分比差异。对于某些记录,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/流行):
['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 GDP/Pop 并将其附加到“thisthing”
我不知道从哪里开始这样做,而且我已经被困在这里大约一个星期了......任何帮助将不胜感激。