python – 选择并操作.csv中的列
发布时间:2020-12-20 11:26:04 所属栏目:Python 来源:网络整理
导读:我有一个包含38列和1500行的csv,其中包含浮点数和字符串.我想要来自该集合的3列(x,y,z)浮点数据来找到f =(x y)/ z的平均值.经过研究,我成功地将这些列分离为numpy数组并执行f =(x y)/ z.现在当我尝试总结f时,数组没有加起来.我打印f我看到1500项正确的值,但
我有一个包含38列和1500行的csv,其中包含浮点数和字符串.我想要来自该集合的3列(x,y,z)浮点数据来找到f =(x y)/ z的平均值.经过研究,我成功地将这些列分离为numpy数组并执行f =(x y)/ z.现在当我尝试总结f时,数组没有加起来.我打印f我看到1500项正确的值,但不是这些的总和.
reader=csv.reader(open('myfile.csv',"rb"),delimiter=',') reader.next() reader.next() x=list(reader) data=numpy.array(x) rows=data.shape[0] for i in range (0,rows): x=numpy.array(data[i,18]).astype('float') y=numpy.array(data[i,19]).astype('float') z=numpy.array(data[i,6]).astype('float') f=numpy.array((x+y)/z) average=numpy.sum(f)/rows print average 解决方法
如果数据已经是数组,则不需要for循环:
x = data[:,18].astype(float) y = data[:,19].astype(float) z = data[:,6].astype(float) f = (x+y) / z average = np.average(f) 用 data = np.loadtxt('myfile.csv',dtype=float,' skiprows=2,usecols=(6,18,19)) 或者直接得到x,y和z: x,z = np.loadtxt('myfile.csv',19),unpack=True) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |