繁体   English   中英

如何将数据从 csv 文件保存到字典?

[英]How to save data from csv file to dictionary?

我正在尝试读取 csv 文件中的数据并将其另存为字典。 前三列是键,第二列是值。

我试图通过以下方式做到这一点。 但它并没有将数据保存到计算机内存中,只是一种读取方式。

实际上,我需要将所有数据保存到 g(i,j,t) 中。

例如,g(1,1,2)=20, g(1,1,3)=40....

我怎么能做到?

df1_head = [ 'i', 'j', 't', 'g']
df1 = pd.read_csv('C:/Users/C1/input01g.csv', names=df1_head)
def g(i,j,t):
    return (df1[(df1['i'] == i) & (df1['j'] == j) & (df1['t'] == t)]['g'])

请看看这是否有效:

import csv

my_dict = {}
with open('abc.csv', newline='') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=' ')
    for row in spamreader:
        print(row)
        key_list = row[0][0:5]
        val = row[0].split(',')[3]
        my_dict.__setitem__(key_list,val)
print(my_dict)

abc.csv

i,j,k,10
p,q,r,20
w,r,t,30

我是这样解决的:

g={}
df1_head = [ 'i', 'j', 't', 'g']
df1 = pd.read_csv('C:/Users/C1/input01g.csv', names=df1_head)

for x in range(len(df1['g'])):
    g[(df1['i'][x],df1['j'][x],df1['t'][x])] =df1['g'][x]

我假设你总共只有 4 列,第 4 列是关键,其他 3 列应该是你的 csv 文件中的值,写的逻辑如下,但如果你的 csv 是不同的方式,他们可能必须相应地修改下面的代码

dic = {}
with open("my.csv") as f:
    for line in f:
        linedata = line.strip().split(',')
        dic[linedata[3]] = linedata[:-1]
print dic

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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