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

时间:2018-02-08 05:37:12

标签: python dictionary

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

我尝试按以下方式进行操作。但它没有将数据保存到计算机内存中,只是一种阅读方式。

实际上,我需要将所有数据保存到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'])

3 个答案:

答案 0 :(得分:0)

请查看是否有效:

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

答案 1 :(得分:0)

我用这种方式解决了它:

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]

答案 2 :(得分:-1)

我认为你只有4个列,第4个是关键,其他3个应该是你的csv文件中的值和写入逻辑如下,但如果你的csv有不同的方式,他们可能需要修改下面的代码accinly

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