我正在尝试读取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'])
答案 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