繁体   English   中英

如何使用键将CSV文件读取为元组字典?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM