pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool,
built on top of the Python programming language.
Pandas
Pandas 是個快速、強大、有彈性並且易使用的開源資料分析及操作工具,基於python程式語言
Pandas官網標題
請在 Ipython Console 中輸入以下兩行程式下,即可下載
pandas中有個最重要的變數型態叫作DataFrame。我們直接叫一個DataFrame出來具體的介紹一下它。
首先我們先從檔案匯入台積電的日線資料。
呼叫及使用套件。尾端使用as
即可替套件重新取名字。
請注意:檔案與程式碼需在同一個資料夾
csv
檔Excel
檔案中開啟pandas_datareader
套件下載股價資料這時候就可以在spyder裡面的variable navigator看到我們匯入的資料了。
我接下來要介紹一下這個DataFrame。
DataFrame有直行橫列,最上方的這一橫排標示著這每一行的名稱,最左方的這一直列標示每一列的index(編號)。
columns屬性
得到所有行的名稱shape屬性
得到DataFrame的形狀(大小)。len()函式
來得到rows的數量pandas在存取每個column的時候,是採取很像字典的方式,透過字串去索引。在製造一個新的column時,也事像,字典一樣直接宣告即可
我們把twic DataFrame的'OPEN'
column取出來,另外存到twic_open這個新的變數裡。
我們也可以使用DataFrame的iloc來存取DataFrame裡面的資料。
iloc意思是 integer location(整數位置),就是把DataFrame裡面的窗格做編號,用[列,行]
的順序存取。
記得,數數是從0開始。
你也可以用iloc來做切片,就如同前面對列表做的一樣。
試著印出twic_open的type,會發現他是一個叫作Series(意為序列)的變數型態,你可以想像,就是這一行一行的Series組合成一個DataFrame。
相同長度的Series可以互相做運算,很常見的像是加減乘除。運算結果會得到一個新的Series。
程式碼->twic['漲跌'] 會在twic DataFrame中新增欄位,並取名為"漲跌"
那請問如果我們將每日的收盤價減去開盤價,我們得到的這個新的series代表什麼意思?
Ans: 日K線的長度,負號代表黑K。
拿來計算成長率
直接重新命名
也可以用DataFrame的rename方法。
index索引
合併請使用left_index
=Truecolumn名稱
合併請使用left_on
='xx'(ex:"Date")有名稱一樣的columns,pandas會自動的標上_x,_y
作為後綴。我們也可以自己設定。
往下append
ignore_index·
: 重新排序index
sort
: 對columns排序
往右join
正數代表往下平移,負號代表往上平移
也可以對Series做。
這樣可以得到收盤價對前一天的漲跌
rolling是一個移動窗格的概念,將一個DataFrame的橫列N個作為一組。再來就可以接上我們想要的操作,最常用的max, min, mean等。
我們試試看用rolling().mean()來做移動平均線。
groupby可以以某個欄位或者Series進行分組,為了方便學習,我們使用for迴圈的方式進行拆解。
更好、更快的方法
這個功能極為重要,請多試試