Python:大csv文件导入

时间:2012-06-22 08:40:41

标签: python csv time-series financial spyder

我目前没有成功尝试使用Python导入大型csv数据集。基本上,我有一个由股票报价制成的大型csv文件(每列一个股票,另一个股票包含股息)。我使用csv模块,但事实是我无法得到一个np.array列是股票报价.Python按行创建一个np.array我希望按行列出np.array 。我该怎么办?

谢谢你的帮助!!

3 个答案:

答案 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.shapendarray.reshape个功能。

  

http://www.scipy.org/Tentative_NumPy_Tutorial

否则,您只需按照自己的方式阅读,然后通过

进行转置
x = x.transpose() 

其中x是ndarray。

http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.transpose.html

所有这些小事通常都在文档中。我建议先仔细阅读。