我目前没有成功尝试使用Python导入大型csv数据集。基本上,我有一个由股票报价制成的大型csv文件(每列一个股票,另一个股票包含股息)。我使用csv模块,但事实是我无法得到一个np.array列是股票报价.Python按行创建一个np.array我希望按行列出np.array 。我该怎么办?
谢谢你的帮助!!
答案 0 :(得分:2)
我建议使用Pandas库。它还使您能够通过较小的chuncks读取大型csv文件。这是来自文档的考试:
数据:
year indiv zit xit
0 1977 A 1.2 0.60
1 1977 B 1.5 0.50
2 1977 C 1.7 0.80
3 1978 A 0.2 0.06
4 1978 B 0.7 0.20
5 1978 C 0.8 0.30
6 1978 D 0.9 0.50
指定块大小(获得可迭代):
reader = read_table(’tmp.sv’, sep=’|’, chunksize=4)
for chunk in reader:
.....: print chunk
输出:
year indiv zit xit
0 1977 A 1.2 0.60
1 1977 B 1.5 0.50
2 1977 C 1.7 0.80
3 1978 A 0.2 0.06
year indiv zit xit
0 1978 B 0.7 0.2
1 1978 C 0.8 0.3
2 1978 D 0.9 0.5
NB!如果您需要进一步操纵您的库存数据,Pandas无论如何都是最好的方式。
答案 1 :(得分:0)
我创建了一小段函数,它可以读取csv文件的路径并立即返回dict列表,然后很容易地遍历列表,
def read_csv_data(path):
"""
Reads CSV from given path and Return list of dict with Mapping
"""
data = csv.reader(open(path))
# Read the column names from the first line of the file
fields = data.next()
data_lines = []
for row in data:
items = dict(zip(fields, row))
data_lines.append(items)
return data_lines
可能会帮助你
此致
答案 2 :(得分:0)
您要找的是ndarray.shape
和ndarray.reshape
个功能。
否则,您只需按照自己的方式阅读,然后通过
进行转置x = x.transpose()
其中x是ndarray。
http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.transpose.html
所有这些小事通常都在文档中。我建议先仔细阅读。