2014-04-05 27 views
0

我試圖將時間序列/ Apple的股票價格數據(3000X5)加載到Python中。 所以日期,開放,高,低,關閉。我在python spyder中運行以下代碼。將CSV文件解析爲Python到連續塊

import matplotlib.pyplot as plt 
import csv 

datafile = open('C:\Users\Riemmman\Desktop\SAMPLE_AAPL_DATA_FOR_Python.csv') 
datareader = csv.reader(datafile) 
data = [] 

for row in datareader: 
    data.append(row) 

但'數據'文件仍保留爲列表文件。我希望它分成一個連續的塊,頂部的標題和數據在其各自的列中,日期位於最左側。正如你將會看到R/Matlab中的數據。我錯過了什麼?感謝您的幫助。

回答

3

你想轉置的數據;行到列。當應用於所有行時,zip()函數會爲您執行此操作。使用*datareader有Python的拉動在所有行並應用它們作爲單獨的參數傳遞給zip()功能:

filename = 'C:\Users\Riemmman\Desktop\SAMPLE_AAPL_DATA_FOR_Python.csv' 
with open(filename, 'rb') as datafile: 
    datareader = csv.reader(datafile) 
    columns = zip(*datareader) 

這也使用了一些不錯的練習:

  • 使用文件作爲與上下文管理with語句確保它會自動clsed
  • 以二進制方式打開文件,因此csv模塊可以管理行尾正確
+0

謝謝Martijn!你寫的代碼確實把變量拼湊到這些叫做元組的東西上?每個標題都在頂部,每個標題的值都在下面。有沒有辦法在Spyder數據查看器中以Excel電子表格樣式顯示整個數據集? 現在格式化數據的方式是每個變量都是它自己的「元組」,5元組是因爲我有5個變量。所以我不得不點擊進入每個元組來查看數據 – jessica

+0

對不起,我不熟悉Spyder數據查看器! –

+0

好的,我明白了。如果我想訪問您創建的「Columns」變量中的數據,例如對於給定日期:「12/31/2013」​​和變量:「高」,您將如何訪問數據?是否可以引用行/列? – jessica