i have matching algorithm links students projects. it's working, , have trouble exporting data csv file. takes last value , exports only, when there 200 values exported.
the data that's exported uses each number value when whole 's' rather 3 three numbers make 's', split 3 columns. i've attached images below. appreciated.
#imports pandas import pandas pd pandas import dataframe spa() m in m: s = m['student'] l = m['lecturer'] lecturer[l]['limit'] = lecturer[l]['limit'] - 1 id = m['projectid'] p = project[id]['title'] c = project[id]['sourceid'] r = str(getrank("single_projects1copy.csv",s,c)) print(s+","+l+","+p+","+c+","+r) datapack = (s+","+l+","+p+","+c+","+r) df = pd.dataframe.from_records([datapack]) df.to_csv('try.csv')
you keep overwriting in loop end last bit of data, need append csv df.to_csv('try.csv',mode="a",header=false)
or create 1 df , append , write outside loop, like:
df = pd.dataframe() m in m: s = m['student'] l = m['lecturer'] lecturer[l]['limit'] = lecturer[l]['limit'] - 1 id = m['projectid'] p = project[id]['title'] c = project[id]['sourceid'] r = str(getrank("single_projects1copy.csv",s,c)) print(s+","+l+","+p+","+c+","+r) datapack = (s+","+l+","+p+","+c+","+r) df.append(pd.dataframe.from_records([datapack])) df.to_csv('try.csv') # write data once outside loop
a better option open file , pass file object to_csv
:
with open('try.csv', 'w') f: m in m: s = m['student'] l = m['lecturer'] lecturer[l]['limit'] = lecturer[l]['limit'] - 1 id = m['projectid'] p = project[id]['title'] c = project[id]['sourceid'] r = str(getrank("single_projects1copy.csv",s,c)) print(s+","+l+","+p+","+c+","+r) datapack = (s+","+l+","+p+","+c+","+r) pd.dataframe.from_records([datapack]).to_csv(f, header=false)
you individual chars because using from_records passing single string datapack
value iterates on chars:
in [18]: df = pd.dataframe.from_records(["foobar,"+"bar"]) in [19]: df out[19]: 0 1 2 3 4 5 6 7 8 9 0 f o o b r , b r in [20]: df = pd.dataframe(["foobar,"+"bar"]) in [21]: df out[21]: 0 0 foobar,bar
i think want leave tuple datapack = (s, l, p,c, r)
, use pd.dataframe(datapack)
. don't need pandas @ all, csv lib without needing create dataframes.
Comments
Post a Comment