我想读取一个csv文件并将具有多个值的键保存为程序中的元组。 CSV文件包含一些国家/地区的数据,这些数据表示其1997年至2010年的CO2排放量。我希望将国家/地区名称作为关键字并将排放率作为元组中存储的值。下面是CSV文件和我想要的示例。
CSV文件:
myDict = {
"Afghanistan": (value1, value 2,.....,value_n),
"Algeria": (value1, value 2,.....,value_n),
.
.
.
"nth country": (value1, value 2,.....,value_n)
}
所需字典:
import csv
with open('Book1.csv') as f:
data=[tuple(line) for line in csv.reader(f)]
print(data)
我开发的代码如下所示:
data = [('Afghanistan', 'value1', value2,...,'value_n'), ('Algeria', 'value1', value2,...,'value_n'),....,('nth country', 'value1', value2,...,'value_n')]
但是,输出有些变化。我目前得到以下输出:
a=func(1, 2, 2), b='hey', c=foobar('text'), d=1
您能否让我知道我需要在代码中进行哪些更改才能获得所需的结果?
答案 0 :(得分:3)
如果使用Python 3+,则可以使用extended iterable unpacking将键与每行中的值分开,然后将每一项添加到字典中。
import csv
d = {}
with open('Book1.csv') as f:
for key, *values in csv.reader(f):
d[key] = tuple(map(float, values))
答案 1 :(得分:1)
import pandas as pd
a = pd.read_csv("Book1.csv")
d = dict()
for x in a.columns:
d[x] = tuple(a[x].values)
让我知道这是否有帮助。