前情提要:如果還沒看過Python爬蟲:TWSE 臺灣證券交易所的每5秒大盤指數歷史數據的人,可以先看完再接著看此篇哦。不過你有5秒報價的同學U就直接開始做吧。
完整程式碼在最下方
環境設定
windows Anaconda的jupyter(6.0.3)
使用套件
import pandas as pd
import matplotlib.pyplot as plt
開始工作
步驟1:讀取已有的5秒報價
import pandas as pd
#讀取csv
df = pd.read_csv('tick.csv').drop(columns='Unnamed: 0')
df
步驟2:使用整理表格以及轉換ohle頻率
關鍵點在datetime
欄位的格式和位置,首先要使用pd.to_datetime
將型態轉為"時間型態",接著把datetime
換到DataFrame
的index
,最後只要將5秒的報價使用.resample
,並針對你要轉換的頻率即完成了。
#資料整理df = df.loc[(df[‘time’]!=”09:00:00")]# 9點非開盤價 因此去除df[‘datetime’] = pd.to_datetime(df[‘datetime’],format=’%Y-%m-%d %H:%M:%S’)#時間格式轉換df.set_index(‘datetime’,inplace = True)#將時間columns轉到indexdf = df[‘price’].resample(‘1D’).ohlc()#調整成需要的K棒頻率(1D, 1H, 1Min)df.dropna(inplace = True) #去除nan資料df
可以專注這行df[‘price’].resample(‘1D’).ohlc()
裡面參數可以調整成1D
1日K、1Min
1分K、30Min
30分K、1H
1小時K。
步驟3:使用matplotlib畫圖
import matplotlib.pyplot as pltfig, ax = plt.subplots()fig.set_size_inches(15, 4)# 設定圖片大小ax.plot(df.index, df['close'])# 要繪製的x軸、y軸數據以及線的顏色ax.grid(axis='x')# 設定x軸畫直線plt.xlabel('datetime')# 設定x軸的名稱plt.ylabel('price')# 設定y軸的名稱plt.title('1 Day')# 設定圖的表頭名稱plt.savefig('1day.png')# 將圖片儲存plt.show()
完整程式碼
小結
寫完本篇除了是自己想要在學習路上作筆記外,同時也想分享給剛入坑的同學們,如果你對於以上的內容有建議歡迎提出,一起討論絕對是成長的捷徑!!