2016-01-21 19 views
2

我在CSV以下数据:转换CSV到numpy的

column 1 column 2 
    5   17 
    9   16 
    4   13 
    10   15 
    2   10 
    1   18 
    2   14 
    1   19 

我试图从CSV去快译通(这部分数据已经被正确地完成),然后从字典到到numpy的,以获得中位数价钱。但是,我收到以下错误:

Traceback (most recent call last):File "untitled.py", line 10, in <module> 
avg = np.median(row['column 1']). 

TypeError: cannot perform reduce with flexible type 

如何编写此代码以正常工作?

import csv 
import numpy as np 

storedata = [] 

f = open('/Users/darchcruise/Desktop/untitled.csv', 'r') 
reader = csv.DictReader(f) 
for row in reader: 
    col_1 = int(row['column 1']) 
    avg = np.median(row['column 1']) 

print(avg) 

回答

2

您的标题有点难以分析,因为标题名称中有空格作为分隔符和空格。最简单的将是忽略标题:

>>> data = np.genfromtxt('mydata.csv', skip_header=True) 
>>> median_col1 = np.median(data[:,0]) 
>>> median_col1 
3.0 
+0

我得到这个错误:IndexError:数组 – user3062459

+0

太多的指数你从你的问题或不同的csv文件使用示例文件? –

+0

我需要包含分隔符.............'data = np.genfromtxt('/ Users/darchcruise/Desktop/untitled.csv',skip_header = True,delimiter =',') (median_col1)' print(median_col1)' – user3062459