Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรม Python รวม (merge) สอง DataFrame ตามคอลัมน์ที่ตรงกัน

สมมติว่าคุณมีสอง DataFrame และต้องการรวม (merge) ตามคอลัมน์ที่มีค่าตรงกัน (เช่น 'id')

วิธีแก้ปัญหา

  1. สร้าง DataFrame แรก (มีคอลัมน์ id, country)
  2. สร้าง DataFrame ที่สอง (มีคอลัมน์ id, City)
  3. ใช้ pd.merge(df1, df2, how='inner', on='id') รวมแบบ inner join

ตัวอย่างโค้ด

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 แรก:")
print(first_df)
print("\nDataFrame ที่สอง:")
print(second_df)

# Merge แบบ inner join ตามคอลัมน์ 'id'
merged = pd.merge(first_df, second_df, how='inner', on='id')
print("\nผลลัพธ์ Merge (inner join on 'id'):")
print(merged)

ผลลัพธ์

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

DataFrame ที่สอง:
   id       City
0   1    Chennai
1  11  Cambridge
2  22   Chicago
3   4   Chengdu

ผลลัพธ์ Merge (inner join on 'id'):
   id country     City
0   1   India  Chennai
1   4   China  Chengdu

คำอธิบายประเภท Join:

  • inner: เฉพาะ key ที่มีในทั้งสอง DataFrame (default)
  • left: key ทั้งหมดจาก left DataFrame + ค่าที่ match จาก right
  • right: key ทั้งหมดจาก right DataFrame + ค่าที่ match จาก left
  • outer: key ทั้งหมดจากทั้งสอง DataFrame (union)
  • on='id' ระบุคอลัมน์ key ที่ตรงกันในทั้งสองฝั่ง (ถ้าชื่อต่างกันใช้ left_on, right_on)