python-3.x 将CSV转换为numpy

yvfmudvl  于 2023-02-01  发布在  Python
关注(0)|答案(2)|浏览(177)

我的CSV中包含以下数据:

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

我尝试从CSV到dict(这部分已经正确完成),然后从dict到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('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)
2mbi3lxu

2mbi3lxu1#

你的头文件有点难解析,因为你有空格作为分隔符,而且头文件名称中也有空格。最简单的方法是跳过头文件:

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

ar7v8xwq2#

你可以使用numpy把txt文件直接读入一个数组:

import numpy as np
csv = np.genfromtxt('file.csv')

从那里你可以继续得到中位数,或者对数组做任何你想做的事情
请参阅以下内容以供参考:http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.genfromtxt.html

相关问题