2017-07-06 1 views
0

これはstackoveflowの私の最初の投稿であり、私は特にpythonをプログラミングするのはかなり新しいです。私は工学的になっており、数学やグラフ作成のアプリケーションを中心に、Pythonを学んでいます。 基本的に私の質問は、私のソースデータ(Googleの株データ)からcsv Excelデータをダウンロードして、日付に対して特定の行だけをプロットすることです。自分のために、私は日付を近い値にしたい。 現在、私は取得しているエラーメッセージが '5-Jul-17'のタイムデータです '%d-%m-%Y'と一致しません 以前はタプルデータも一致していませんでした 開かれたcsv Excelのデータは です[日付、オープン、ハイ、ロー、クローズ、クローズ、ボリューム、日付は2017-05-30として編成されています] [1] 残念ながら、 あらかじめありがとうございました! --edit-- もう少し手を加えたら、名前とdtypesは必要ではないと思います。 get(250L、6L)これは正しいと思われます。今、私の主な問題は、日付を何か使用可能にすることです。私のエラーはstrptimeが文字列を受け入れるだけなので、何を使うべきかわからない使用する適切なフォーマット文字列が%d-%b-%yで、5「 - 7月 - 17」csvファイルの日付が形式であると仮定すると、グラフ作成の問題は、日付がインターネットソースからデータを奪い取る

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のために配列のインデックスが多すぎますが、データフォーマットから名前とdtypeを削除すると、名前とdtypesを追加すると、データが特定の方法で表示されますか?それでも、日付行には何の効果もありませんが、私のエラーコードは基本的に無効なインデックスを使用しています – Logan

答えて

0

(以下、更新されたコードを参照してください)。

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) 

strptime()行動上のPython documentationを参照してください。

関連する問題