Utilizarea merge_ordered()

Îmbinarea datelor cu pandas

Aaren Stubberfield

Instructor

merge_ordered()

Exemplu de tabel pentru merge_ordered()

Îmbinarea datelor cu pandas

Comparație între metode

Metoda .merge():

  • Coloana/coloanele de îmbinare
    • on, left_on, și right_on
  • Tipul de îmbinare
    • how (left, right, inner, outer) {{@}}
    • implicit inner
  • Nume de coloane suprapuse
    • suffixes
  • Apelarea metodei
    • df1.merge(df2)

Metoda merge_ordered():

  • Coloana/coloanele de îmbinare
    • on, left_on, și right_on
  • Tipul de îmbinare
    • how (left, right, inner, outer)
    • implicit outer
  • Nume de coloane suprapuse
    • suffixes
  • Apelarea funcției
    • pd.merge_ordered(df1, df2)
Îmbinarea datelor cu pandas

Set de date financiare

Imagine cu un ziar și graficul Dow Jones

1 Fotografie de Markus Spiske pe Unsplash
Îmbinarea datelor cu pandas

Date bursiere

Numele tabelului: 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

Numele tabelului: 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
Îmbinarea datelor cu pandas

Îmbinarea datelor bursiere

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
Îmbinarea datelor cu pandas

Completare înainte (forward fill)

Imagine înainte și după completarea înainte. Valorile lipsă dintr-o coloană sunt înlocuite cu valorile anterioare din aceeași coloană.

Îmbinarea datelor cu pandas

Exemplu de completare înainte

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
Îmbinarea datelor cu pandas

Când se utilizează merge_ordered()?

  • Date ordonate / serii de timp
  • Completarea valorilor lipsă
Îmbinarea datelor cu pandas

Să exersăm!

Îmbinarea datelor cu pandas

Preparing Video For Download...