gpt4 book ai didi

Python 将 CSV 转换为列表字典

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:21 24 4
gpt4 key购买 nike

我有一个如下所示的 CSV 文件:

compound, x1data,y1data,x2data,y2data
a,1,2,3,4
a,9,10,11,12
b,5,6,7,8
b,4,5,6,7

我想创建一个列表字典,其中化合物是键,对于每个化合物,我都会得到 x1data、y1data、x2data 和 y2data 的列表。

我相信它看起来像这样:

my_dict = {
'a': {'x1data':[1,9],'y1data':[2,10],'x2data':[3,11],'y2data':[4,12]},
'b':{'x1data':[5,4],'y1data':[6,5],'x2data':[7,6],'y2data':[8,7]}
}

最终我想绘制每种化合物的 x1data 与 y1data 以及 x2data 与 y2data 的关系图。

我已经尝试过,它正确地创建了一个字典,其中键是复合的,但它没有给我一个值列表(只是 csv 中的最后一个值。

my_dict = {}
with open(filename, 'r') as infile:
reader = csv.DictReader(infile)
for row in reader:
key = row.pop('compound')
my_dict[key] = row

最佳答案

这是一种无需任何库即可完成此操作的方法。

f = open('f.csv', 'rb')
next(f)
mydict = {}
for row in f:

compound,x1data,y1data,x2data,y2data = row.strip().split(',')
x1data,y1data,x2data,y2data = int(x1data),int(y1data),int(x2data),int(y2data)
if compound not in mydict:
mydict[compound] = { 'x1data' : [], 'y1data' : [], 'x2data' : [], 'y2data' : [] }


mydict[compound]['x1data'].append(x1data)
mydict[compound]['y1data'].append(y1data)
mydict[compound]['x2data'].append(x2data)
mydict[compound]['y2data'].append(y2data)
}
f.close()

print mydict

给你:

{'a': {'x2data': [3, 11], 'y2data': [4, 12], 'y1data': [2, 10], 'x1data': [1, 9]}, 'b': {'x2data': [7, 6], 'y2data': [8, 7], 'y1data': [6, 5], 'x1data': [5, 4]}}

关于Python 将 CSV 转换为列表字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57730620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com