merge_ordered()の使い方

pandas によるデータの結合

Aaren Stubberfield

Instructor

merge_ordered()

merge_ordered() の表の例

pandas によるデータの結合

手法の比較

.merge() メソッド:

  • 結合する列
    • onleft_onright_on
  • 結合の種類
    • how (左、右、内側、外側) {{@}}
    • デフォルト inner
  • 重複する列名
    • suffixes
  • メソッドを呼び出す
    • df1.merge(df2)

merge_ordered() メソッド:

  • 結合する列
    • onleft_onright_on
  • 結合の種類
    • how (左、右、内側、外側)
    • default outer
  • 重複する列名
    • suffixes
  • 関数の呼び出し
    • pd.merge_ordered(df1, df2)
pandas によるデータの結合

財務データセット

ダウ・ジョーンズのチャートが載った新聞の画像

1 UnsplashのMarkus Spiskeによる写真
pandas によるデータの結合

株価データ

Table Name: 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 によるデータの結合

前方補完

前後のフォワードフィルの画像。 列内の欠損値は、その列の直前の値で埋められます。

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...