【解決辦法】pandas畫出時序資料(股票資料)橫軸不是時間
阿新 • • 發佈:2018-12-19
簡述
遇到了這個問題,被坑了很久。
首先我們要假設我們一直認為index是時間資料。然後我們發現沒有看到橫軸為時間
(如果不是的這麼認為的話,就記得先把index設定為時間資料)
可能性
遇到這個問題有很多種可能。
- 讀取的時候,時間所在的列沒有被設定為index。
- 這種可能下的樣子就是: 畫出的圖,橫軸為數字(預設index)
- 解決辦法: 重新設定為index(往往這個問題,會伴隨著下面的問題)
df = pd.read_csv("sh.csv", index_col=0)
- 在dataframe中index看來就是時間資料了,但是任然沒有為時間
- 這樣可能下的樣子就是:
- 解決辦法: 記得將資料轉成時間資料
df.index = list(map(lambda x: datetime.datetime.strptime(x, "%Y-%m-%d"), df.index))
- 這樣可能下的樣子就是:
資料正規化:(處理後的)
open close high low volume money
2010-01-04 3592.468 3535.229 3597.748 3535.229 6.610108e+09 9.341984e+10
2010 -01-05 3545.186 3564.038 3577.526 3497.661 8.580964e+09 1.283024e+11
2010-01-06 3558.700 3541.727 3588.832 3541.173 7.847312e+09 1.210460e+11
2010-01-07 3543.160 3471.456 3558.556 3452.769 8.035004e+09 1.204362e+11
2010-01-08 3456.908 3480.130 3482.083 3426.698 6.079025e+09 9.019096e+10
2010-01-11 3593.106 3482.052 3594.528 3465.317 8.998017e+09 1.341140e+11
2010-01-12 3477.842 3534.916 3535.407 3437.661 9.374328e+09 1.340714e+11
2010-01-13 3448.291 3421.144 3490.112 3415.693 1.124579e+10 1.598604e+11
2010-01-14 3433.472 3469.051 3470.323 3411.812 8.335325e+09 1.181079e+11
2010-01-15 3472.524 3482.738 3500.072 3448.661 7.254310e+09 1.040352e+11