Dùng merge_ordered()

Kết hợp dữ liệu với pandas

Aaren Stubberfield

Instructor

merge_ordered()

Bảng ví dụ của merge_ordered()

Kết hợp dữ liệu với pandas

So sánh phương thức

Phương thức .merge():

  • Cột để nối
    • on, left_on, right_on
  • Kiểu join
    • how (left, right, inner, outer) {{@}}
    • mặc định: inner
  • Tên cột trùng
    • suffixes
  • Gọi phương thức
    • df1.merge(df2)

Hàm merge_ordered():

  • Cột để nối
    • on, left_on, và right_on
  • Kiểu join
    • how (left, right, inner, outer)
    • mặc định: outer
  • Tên cột trùng
    • suffixes
  • Gọi hàm
    • pd.merge_ordered(df1, df2)
Kết hợp dữ liệu với pandas

Bộ dữ liệu tài chính

Ảnh báo với biểu đồ Dow Jones

1 Ảnh của Markus Spiske trên Unsplash
Kết hợp dữ liệu với pandas

Dữ liệu cổ phiếu

Tên bảng: 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

Tên bảng: 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
Kết hợp dữ liệu với pandas

Gộp dữ liệu cổ phiếu

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
Kết hợp dữ liệu với pandas

Điền tiến (forward fill)

Ảnh trước và sau khi điền tiến. Giá trị thiếu trong một cột được lấp bằng giá trị trước đó của cột.

Kết hợp dữ liệu với pandas

Ví dụ điền tiến

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
Kết hợp dữ liệu với pandas

Khi nào dùng merge_ordered()?

  • Dữ liệu có thứ tự / chuỗi thời gian
  • Điền giá trị thiếu
Kết hợp dữ liệu với pandas

Ayo berlatih!

Kết hợp dữ liệu với pandas

Preparing Video For Download...