2017-07-06 43 views
0

這是我在stackoveflow上的第一篇文章,我很新編程,特別是python。我在工程中,並且正在學習python來向前發展,主要是在數學和圖形應用上。 基本上我的問題是如何從源代碼下載csv excel數據(在我的案例中是谷歌的股票數據),並在日期只繪製某些行。對於我自己,我希望這個日期與最接近的價值。 現在我收到的錯誤信息是timedata'5-Jul-17'不匹配'%d-%m-%Y' 以前我也收到元組數據不匹配 打開csv的描述在Excel中的數據是 [7列(日期,開放,高,低,關閉,AdjClose,卷,日期組織爲2017-05-30] [1] 我敢肯定還有其他錯誤 我真的很感激這個, 提前謝謝你! --edit-- 在擺弄更多我不認爲名稱和dtypes是必要的,當我檢查矩陣尺寸沒有這些標識符得到(250L,6L)這似乎是正確的。現在我的主要問題是將日期轉換爲可用的東西,現在我的錯誤是strptime只接受字符串,所以我不確定要使用什麼。 (見下面的更新的代碼)圖形excel數據與日期互聯網源的問題

import matplotlib.pyplot as plt 
importnumpy as np 
from datetime import datetime 

def graph_data(stock): 

    %getting the data off google finance 
    data = np.genfromtxt('urlgoeshere'+stock+'forthecsvdata', delimiter=',', 
         skip_header=1) 
    # checking format of matrix 
    print data.shape (returns 250L,6L) 

    time_format = '%d-%m-%Y' 
    # I only want the 1st column (dates) and 5 column (close), all rows 
    date = data[:,0][:,] 
    close = data[:,4][:,] 

    dates = [datetime.strptime(date, time_format)] 

    %plotting section 
    plt.plot_date(dates,close, '-') 
    plt.legend() 
    plt.show() 

graph_data('stockhere') 
+1

你能顯示原始CSV數據嗎? Excel截圖中的日期格式與錯誤消息不匹配,我想知道在Excel中打開csv文件時它是否已轉換。 –

+0

@StephenTerry,我認爲你是正確的,它在Excel中打開時變得被隱藏起來。當我在記事本中打開它時,它以2行非常直觀的方式呈現數據,而不是以表格格式顯示。有趣的是,當我使用print語句來查看發生了什麼時,對於'close'它表示數組的索引太多,但是當我從數據格式中刪除名稱和dtypes時,它可以用於關閉就好,可以添加名稱和dtype會強制數據以某種方式顯示?它仍然沒有對日期行的影響,但是,我的錯誤代碼基本上我使用無效索引 – Logan

回答

0

假設在CSV文件中的日期格式中的「5-JUL-17」,以適當的格式串使用是%d-%b-%y

In [6]: datetime.strptime('5-Jul-17','%d-%m-%Y') 

ValueError: time data '5-Jul-17' does not match format '%d-%m-%Y' 

In [7]: datetime.strptime('5-Jul-17','%d-%b-%y') 

Out[7]: datetime.datetime(2017, 7, 5, 0, 0) 

請參閱Python documentationstrptime()行爲。