Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Gộp (merge) 2 DataFrame dựa trên cột khớp nhau Python pandas

Giả sử bạn có 2 DataFrame và muốn gộp (inner join) dựa trên cột 'id' chung.

Giải pháp

  • Tạo 2 DataFrame có cột 'id' chung.
  • Sử dụng pd.merge(df1, df2, how='inner', on='id').

Mã ví dụ

import pandas as pd

first_df = pd.DataFrame({'id': [1,2,3,4], 'country': ['India','UK','US','China']})
second_df = pd.DataFrame({'id': [1,11,22,4], 'City': ['Chennai','Cambridge','Chicago','Chengdu']})

print("DataFrame 1:\n", first_df)
print("\nDataFrame 2:\n", second_df)

merged = pd.merge(first_df, second_df, how='inner', on='id')
print("\nKết quả merge (inner join on 'id'):\n", merged)

Kết quả

DataFrame 1:
   id country
0   1   India
1   2      UK
2   3      US
3   4   China

DataFrame 2:
   id       City
0   1    Chennai
1  11  Cambridge
2  22   Chicago
3   4   Chengdu

Kết quả merge (inner join on 'id'):
   id country     City
0   1   India  Chennai
1   4   China  Chengdu

Giải thích:

  • how='inner': Chỉ giữ id xuất hiện ở CẢ 2 DataFrame (1 và 4).
  • Các loại join khác: 'left', 'right', 'outer', 'cross'.
  • on='id': Cột khóa chung. Nếu tên khác: left_on='id1', right_on='id2'.