獲「科技部人文社會科學研究中心」補助 AI in Finance: 金融與人工智慧成果分享平台

課程

2020/08/04
python語法介紹
資料合併

資料分析中常會使用到資料合併,在pandas套件中主要有兩個函式,本節將分別說明,最後會說明兩者函式的差異:
pd.merge()
pd.concat()

一、merge函式
merge主要是利用某個columns合併表格,利用以下例子進行說明
首先利用DataReader套件下載2020年台積電的股價資料,並命名為df1

另外,還有另一個excel檔案是台積電2020年三大法人買賣超的資料,請利用下面的連結進入雲端下載

下載台積電三大法人買賣超excel檔案(請點我)

利用pd.read_excel()函式讀入名為台積電三大法人買賣超的excel檔案,並取名為df2

想要將台積電的股價資料和三大法人買賣超資料進行合併,主要是利用日期合併,也就是同一日的股價資料和三大法人買賣資料是在同一列(row),因此合併完成的df_all表格後面三欄就是外資、投信、自營商買賣超的資料。

二、pd.concat()
一開始有下載台積電的股價資料,現在再下載大立光的股價資料命名為df3,我們想將台積電與大立光的股價資料進行合併,可以利用直向合併的方式。
以這個例子來說合併之後,上半部的表格為台積電2020年的股價資料,下半部分為台達電2020年的股價資料。

df1和df3都先增加一欄公司名稱,分別是2330和2308。在這個例子中要進行直向合併,直向合併必須指定axis=0。
將合併後的df_2company表格印出前三列,顯示為台積電的資料,後三列則是台達電的資料,表示直向合併有成功。

pd.concat函數除了直向合併之外,也可以橫向合併,同樣使用台積電與台達電股價資料的例子。
指定axis=1即可進行橫向合併。
合併後的結果即可看出台達電的股價資料在台積電股價資料的右側,因此直向合併或橫向合併需要取決於大家要分析的資料。

三、總結
merge和concat函數的差異,當要指定key合併就要使用merge,像是指定用日期合併。如果不需特別指定,只要直向或橫向直接合併即可使用concat函式。