Python komma igång med dataanalys av CSV filer?
Så jag har planerat lite dåligt och behöver bli klar med en dataanalys/behandling av CSV filer. Jag tänkte använda Python då jag hört att det ska vara bra till sådana här grejer men även för att kunna återanvända koden längre fram. Det är inget super avancerat jag vill göra, faktum är att det mesta gåra att göra i excell, men jag vill gärna lära mig Python då jag är grön på det(kan dock Java och C# ganska bra). Jag tänkte först och främst börja använda något färdig bibliotek, vid googlar så är det främst numpy och scipy jag får upp, så jag har fått uppfattningen att det är det man bör köra på, i alla fall från början. Tyvärr misslyckas jag med det enklaste möjliga exemplet jag hittade och vänder mig till Sweclockers för lite råd. I följande exempel itererar jag en CSV fil för att räkna ihop genomsnittet (mean), dock kraschar det när jag kallar på mean i numpuy.
RuntimeWarning: Mean of empty slice.
out=out, **kwargs)
RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Mean - Question-1: nan
Running...
Process finished with exit code 0
Här är min kod:
import numpy as np
import os
import csv as csv
script_dir = os.path.dirname(__file__) # <-- absolute dir the script is in
rel_path = "data/P2_fixations.csv"
abs_file_path = os.path.join(script_dir, rel_path)
print('File path:', abs_file_path)
read_data = csv.reader(open(abs_file_path, 'r'))
data = []
for row in read_data:
data.append(row)
Header = data[0]
data.pop(0)
q1 = []
for i in range(len(data)):
q1.append(int(data[i][1]))
print('Mean - Question-1: ', (np.mean(q1)))
print('Running...')
Rent spontant så känns det som att det är något fel med datatyperna och/eller decimalerna.
Såhär ser min CSV fil ut:
id,task,start_timestamp,duration,start_frame_index,end_frame_index,norm_pos_x,norm_pos_y,dispersion,confidence,method,gaze_point_3d_x,gaze_point_3d_y,gaze_point_3d_z,base_data
6,1,16861.858884,364.663000000291,1072,1082,0.783090099554006,-0.385829389879487,0.79932461815005,0.894177181185017,pupil,85.2935392341283,200.173451371376,470.809203692125,16861.858884 16861.948107 16862.040247 16862.135173 16862.223547