開始使用免費開始

高頻股價

高頻率的股價資料常可用 MA(1) 過程建模,因此非常適合套用本章的模型。

DataFrame intraday 包含 Sprint 股票(代號「S」)在 2017 年 9 月 1 日當天、每分鐘取樣的價格。股市開盤時間為 6.5 小時(390 分鐘),從上午 9:30 到下午 4:00。

在分析時間序列前,你需要先做一些清理工作,這會在本題與接下來兩題完成。當你查看前幾列時,會注意到幾件事。首先,沒有欄名。資料的時間標記不是從 9:30 到 4:00,而是從 0 到 390。你也會看到第一個日期是奇怪的「a1504272600」。字母「a」後面的數字是 Unix time,也就是自 1970 年 1 月 1 日以來的秒數。這個資料集以此方式區分每天的日內資料。

如果你查看資料型別,會發現 DATE 欄是 object,也就是字串。要在後續清理遺漏值前,必須先將它轉成數值。

每分鐘資料來源為 Google Finance(關於如何下載資料,請見此連結:here)。

datetime 模組已經為你匯入。

本練習屬於課程

Python 中的時間序列分析

檢視課程

練習說明

  • 使用 .iloc[0,0] 手動將第一個日期改為 0。
  • 透過將 intraday.columns 設為包含兩個字串的清單,將兩個欄名改為 'DATE''CLOSE'
  • 使用 pandas 屬性 .dtypes(不加括號)來查看每個欄位的資料型別。
  • 使用 pandas 函式 to_numeric()'DATE' 欄轉換為數值型別。
  • 使用 pandas 方法 .set_index(),把 'DATE' 欄設為 intraday 的新索引;該方法的引數是字串 'DATE'(傳入欄位名稱,而不是整個欄位)。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# import datetime module
import datetime

# Change the first date to zero
intraday.___ = 0

# Change the column headers to 'DATE' and 'CLOSE'
intraday.columns = ___

# Examine the data types for each column
print(intraday.dtypes)

# Convert DATE column to numeric
intraday['DATE'] = pd.to_numeric(____)

# Make the `DATE` column the new index
intraday = ____
編輯並執行程式碼