我有一个CSV文件,看起来像这样:它显示从1980年到2014年4个国家的电力消耗。我试图创建一个嵌套字典,例如consumption['United States'][1980]
将返回正确的值。我必须用整年的列表中的数组,我试图创建字典是这样的:循环中的嵌套字典
file = open('power dataset.csv', 'r')
years = list(range(1980, 2015))
consumption = {}
generation = {}
generation = False
for line in file:
if("Nuclear" in line):
break
split = line.split(",")
if split[0] == "Generation":
generation = True
if "Egypt" == split[0] or split[0] == "Germany" or split[0] == "Netherlands" or split[0] == "United States":
values = split[2:]
if not generation:
i = 0
for year in years:
country = split[0]
consumption[country] = {year: values[i]}
i = i+1
其中值是包含相应年度的值的数组。我遇到的问题是字典最终只包含一年和一个值(这是最后一个)。所以如果我尝试打印像consumption['United States'][1980]
这样的东西,我得到一个错误,因为1980年字典中没有条目,只有2014年。
我觉得我错过了一些相当简单的东西,但我无法完全放下手指。
Here是整个CSV文件。
没有看到你如何声明'split','country'和'consumption'我们忍不住 – Adirio
发表了更多的代码。 – ninesalt
是不是有没有使用熊猫的特殊原因?这将是更合适 –