2017-05-20 8 views
0

.csvで保存されたデータをpandas dfに変換する方法と、bokehのデータを解析する方法の両方を理解するのに苦労しているので、助けが必要です。boyshのローソク足チャートを描画するためのpandasデータフレーム

マイ.csvファイルは、私は何をすべきか、この

6:22,30,30,31,31 
6:38,30,30,32,32 
6:53,30,30,31,32 
7:05,30,30,32,32 
7:39,31,31,33,33 

のようになります。

 30 30.1 31 31.1 
6:22      
6:38 30 30 32 32 
6:53 30 30 31 32 
7:05 30 30 32 32 
7:39 31 31 33 33 

けれどもI:

df = pd.DataFrame.from_csv('D:\\Job\\GoogleDrive\\Job\\chatwars.csv') 

これは、データの美しい5つの列とdfを私に与えますなぜ最初の行がそのようにフォーマットされているのかわからない、私はちょうど.csvにヘッダの並べ替えを追加する必要が示唆( 'のような'私、低、オープン、クローズ、ハイ ')。

私の質問はです:どのようにしてこのデータを正しく解析するのですか?ボークーが私のために燭台のチャートを描くことができますか?

私はこのチュートリアルの燭台チャートのこのコードをコピーしましたが、ほとんど読むことはできません(私は唯一の週です。それは私のDF読ん除いて、私はそれを必要とする正確にすべてのものを、行います。その後

2017-05-19 06:22:00,30,30,31,31 
2017-05-19 06:38:00,30,30,32,32 
2017-05-19 06:53:00,30,30,31,32 

:論評から提案されたコードを適用した後

df["date"] = pd.to_datetime(df["date"]) 

inc = df.close > df.open 
dec = df.open > df.close 
w = 12*60*60*1000 # half day in ms 

TOOLS = "pan,wheel_zoom,box_zoom,reset,save" 

p = figure(x_axis_type="datetime", tools=TOOLS, plot_width=1000, title = "MSFT Candlestick") 
p.xaxis.major_label_orientation = pi/4 
p.grid.grid_line_alpha=0.3 

p.segment(df.date, df.high, df.date, df.low, color="black") 
p.vbar(df.date[inc], w, df.open[inc], df.close[inc], fill_color="#D5E1DD", line_color="black") 
p.vbar(df.date[dec], w, df.open[dec], df.close[dec], fill_color="#F2583E", line_color="black") 

output_file("candlestick.html", title="candlestick.py example") 

show(p) # open a browser 

を、私はそれが簡単にこのような私の.csvを変更することが判明しました私は 'time'の 'date'を変更しました。コードは想定通りに動作しました!驚くばかり! :D

答えて

0

あなたの最初の問題を修正する必要があります。ヘッダーをなしに設定して列名を指定すると、csv内のすべての行がデータとしてロードされます。

df = pd.read_csv('D:\\Job\\GoogleDrive\\Job\\chatwars.csv',header=None,names=['time', 'low', 'open', 'close', 'high']) 
+0

、ありがとうございました! –

0

最終的なコードは次のようになります。魔法のように

from math import pi 

import pandas as pd 

from bokeh.plotting import figure, show, output_file 
df = pd.read_csv('D:\\Job\\GoogleDrive\\Job\\chatwars.csv', 
       header=None,names=['time', 'low', 'open', 'close', 'high']) 

#print(df.time) 

df['time'] = pd.to_datetime(df['time']) 

inc = df.close > df.open 
dec = df.open > df.close 
w = 15*60*1000 # 15 minutes ms 

TOOLS = "pan,wheel_zoom,box_zoom,reset,save" 

p = figure(x_axis_type="datetime", tools=TOOLS, 
      plot_width=1000, title = "MSFT Candlestick") 
p.xaxis.major_label_orientation = pi/4 
p.grid.grid_line_alpha=0.3 

p.segment(df.time, df.high, df.time, df.low, color="black") 
p.vbar(df.time[inc], w, df.open[inc], df.close[inc], 
     fill_color="#D5E1DD", line_color="black") 
p.vbar(df.time[dec], w, df.open[dec], df.close[dec], 
     fill_color="#F2583E", line_color="black") 

output_file("candlestick.html", title="candlestick.py example") 

show(p) # open a browser 
関連する問題