在上一篇文章"Python股票實作(1)"中,我們將近期100天的資料存成csv檔。
這次要將這100個csv檔都放進資料庫內,首先要做的就是新增一個檔案,
檔案名稱為"TWStock.db",把它放進跟csv檔一樣的目錄底下。
之後再用程式碼連結並呼叫並做一些處理。
給予TWStock.db一個名稱為dbname
並使用"sqlite3.connect(dbname)"這行code進行connect
dbname = "TWStock.db"
db = sqlite3.connect(dbname)
之後需要先設定下列的一些參數
dates_list = []
total_df = pd.DataFrame()
All_csv_file = glob.glob('*.csv')
使用"All_csv_file = glob.glob('*.csv')"這行code
將本地的.csv檔都匡列進All_csv_file。
都設定好之後會先進行第一次的for迴圈
將All_csv_file內的檔案名稱( 有100筆 ),將.csv的副檔名拿掉後分別存到database與dates_list內。
此時dates_list內的檔明會如下一樣塞滿日期( 這些之後會用到
之後再做第二段的for迴圈
將dates_list透過迴圈將database內的檔案取出並轉成pandas
需要新增一個欄位名為"Date"並將日期放進去,之後df都丟到total_df內
做完以上的動作,total_df就會有100天的表單( 舊到新
但是我們需要把這些表單整理成一組一組,依股票代號為一個Group
dbname_2 = 'TWStock_2'
db2 = sqlite3.connect(dbname_2)
total_dict = dict(tuple(total_df.groupby("證券代號")))
我們需要再新增一個database,給它一個名稱叫'TWStock_2'
然後一樣要做connect,之後使用groupby將代號做成group並轉成字典
*這邊需要注意,轉成字典要將型態轉成tuple,不然會出錯
然後再進行迴圈
取出股票代號並將Date轉成datetime再丟入TWStock_2內
調出證券代號的每一筆資料後,需要對Date進行一些加工。
加工好之後排序,再將每筆資料都丟進TWStock_2內就完成了。
參考連結如下
https://www.youtube.com/watch?v=FP6OkPc9wbw