2022-04-05|閱讀時間 ‧ 約 3 分鐘

Python股票實作(2)

    在上一篇文章"Python股票實作(1)"中,我們將近期100天的資料存成csv檔。
    這次要將這100個csv檔都放進資料庫內,首先要做的就是新增一個檔案,
    檔案名稱為"TWStock.db",把它放進跟csv檔一樣的目錄底下。
    之後再用程式碼連結並呼叫並做一些處理。
    設定database
    設定database
    給予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迴圈
    將csv檔的檔名轉成純日期
    將All_csv_file內的檔案名稱( 有100筆 ),將.csv的副檔名拿掉後分別存到database與dates_list內。
    此時dates_list內的檔明會如下一樣塞滿日期( 這些之後會用到
    全部都是日期名稱
    之後再做第二段的for迴圈
    透過dates_list讀取每一張表單
    將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
    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.