使用 merge_ordered()

使用 pandas 進行資料表連接

Aaren Stubberfield

Instructor

merge_ordered()

merge_ordered() 的資料表範例

使用 pandas 進行資料表連接

方法比較

.merge() 方法:

  • 連接欄位
    • onleft_onright_on
  • 連接類型
    • how (left, right, inner, outer) {{@}}
    • 預設 inner
  • 欄位同名處理
    • suffixes
  • 呼叫方式
    • df1.merge(df2)

merge_ordered() 方法:

  • 連接欄位
    • onleft_onright_on
  • 連接類型
    • how (left, right, inner, outer)
    • 預設 outer
  • 欄位同名處理
    • suffixes
  • 呼叫方式
    • pd.merge_ordered(df1, df2)
使用 pandas 進行資料表連接

財務資料集

報紙與道瓊指數圖

1 Photo by Markus Spiske on Unsplash
使用 pandas 進行資料表連接

股價資料

資料表名稱:aapl

  date        close    
0 2007-02-01  12.087143
1 2007-03-01  13.272857
2 2007-04-01  14.257143
3 2007-05-01  17.312857
4 2007-06-01  17.434286

資料表名稱:mcd

  date        close    
0 2007-01-01  44.349998
1 2007-02-01  43.689999
2 2007-03-01  45.049999
3 2007-04-01  48.279999
4 2007-05-01  50.549999
使用 pandas 進行資料表連接

合併股價資料

import pandas as pd
pd.merge_ordered(aapl, mcd, on='date', suffixes=('_aapl','_mcd'))
  date        close_aapl  close_mcd
0 2007-01-01  NaN         44.349998
1 2007-02-01  12.087143   43.689999
2 2007-03-01  13.272857   45.049999
3 2007-04-01  14.257143   48.279999
4 2007-05-01  17.312857   50.549999
5 2007-06-01  17.434286   NaN
使用 pandas 進行資料表連接

前向填補(forward fill)

前向填補的前後對照:欄位中的遺漏值以該欄先前的值補上。

使用 pandas 進行資料表連接

前向填補範例

pd.merge_ordered(aapl, mcd, on='date', 
                 suffixes=('_aapl','_mcd'), 
                 fill_method='ffill')
  date        close_aapl  close_mcd
0 2007-01-01  NaN         44.349998
1 2007-02-01  12.087143   43.689999
2 2007-03-01  13.272857   45.049999
3 2007-04-01  14.257143   48.279999
4 2007-05-01  17.312857   50.549999
5 2007-06-01  17.434286   50.549999
pd.merge_ordered(aapl, mcd, on='date', 
                 suffixes=('_aapl','_mcd'))
  date        close_aapl  close_mcd
0 2007-01-01  NaN         44.349998
1 2007-02-01  12.087143   43.689999
2 2007-03-01  13.272857   45.049999
3 2007-04-01  14.257143   48.279999
4 2007-05-01  17.312857   50.549999
5 2007-06-01  17.434286   NaN
使用 pandas 進行資料表連接

何時使用 merge_ordered()?

  • 有序資料/時間序列
  • 補齊遺漏值
使用 pandas 進行資料表連接

一起來練習吧!

使用 pandas 進行資料表連接

Preparing Video For Download...