[英]How to read CSV file as a tuple dictionary with keys?
我想读取一个csv文件并将具有多个值的键保存为程序中的元组。 CSV文件包含一些国家/地区的数据,这些数据表示其1997年至2010年的CO2排放量。我希望将国家/地区名称作为关键字并将排放率作为元组中存储的值。 下面是CSV文件和我想要的示例。
CSV档案:
Afgahnistan, value1,value2,value3,value4,....,value_n
Algeria, value1,value2,.....,value_n
nth country, value1, value2,....,value_n
所需字典:
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')]
您能否让我知道我需要对代码进行哪些更改才能获得所需的结果?
如果使用的是Python 3+,则可以使用扩展的可迭代解包来将键与每行中的值分开,然后将每一项添加到字典中。
import csv
d = {}
with open('Book1.csv') as f:
for key, *values in csv.reader(f):
d[key] = tuple(map(float, values))
import pandas as pd
a = pd.read_csv("Book1.csv")
d = dict()
for x in a.columns:
d[x] = tuple(a[x].values)
让我知道是否有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.