我有一个compareout
存储嵌套数据列表的变量:
compareout = [...
[Guyana,951.723423,1037.123424,28.476757,2.991234],
[Bolivia,936.123420,1065.8234236,43.25123,4.62],
[Philippines,925.52342342,1119.62342341,64.70234234,6.991234123],
[Congo (Rep.),907.22342343,1657.52342349,250.1242342,27.571234123],
...]
我试图:
- 按第二列升序排序,将此排序列表的前 10 项写入 .csv
- 按第二列降序排序,将前 10 个项目排序列表写入第二个 .csv
但是,我需要格式化输出,使所有浮点数只有 2 个小数位,并将 USD 连接到第二和第三列值的前面,并在最后一列值的末尾添加一个 '%' 符号。虽然我可以迭代'compareout'并像这样替换最后两个列......
for line in compareout:
avgyrincr = (float(line[2])-float(line[1]))/3
percent = (avgyrincr/float(line[1])) * 100
line.append("%.2f" % avgyrincr)
line.append("%.2f%%" % percent)
我不能做一些简单的事情,比如:
for line in ascending:
line[1] = "USD %.2f" % line[1]
line[2] = "USD %.2f" % line[2]
因为这不允许排序。目前,在我第一次对数据进行排序并将其写入第一个文件之后,我立即出现了上面的代码,但当然我不能按降序排序......我也对如何指定只写 10 个项目感到困惑。 ..
我已经用谷歌搜索了大约一个小时,似乎无法找到关于 csv.writerow() 函数是否允许在写入时进行格式化的足够信息,而且我已经用完了方法。如果有人能给我一些想法,我将不胜感激......