Pandas: วิธีตรวจสอบว่า dataframes สองอันเท่ากันหรือไม่
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อตรวจสอบว่า DataFrames ของ pandas สองตัวเท่ากันหรือไม่:
df1. equals (df2)
สิ่งนี้จะส่งคืนค่า True หรือ False
ถ้าสอง DataFrame ไม่เท่ากัน คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาแถวใน DataFrame ที่สองที่ไม่มีอยู่ใน DataFrame แรก:
#perform outer join on two DataFrames all_df = df1. merge (df2, indicator= True , how=' outer ') #find which rows only exist in second DataFrame only_df2 = all_df[all_df[' _merge '] == ' right_only '] only_df2 = only_df2. drop (' _merge ', axis= 1 )
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: ตรวจสอบว่า DataFrames ของแพนด้าสองตัวเท่ากันหรือไม่
สมมติว่าเรามี DataFrames แพนด้าสองตัวต่อไปนี้:
import pandas as pd #create first DataFrame df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'], ' points ': [12, 15, 22, 29, 24]}) print (df1) team points 0 to 12 1 B 15 2 C 22 3 D 29 4 E 24 #create second DataFrame df2 = pd. DataFrame ({' team ': ['A', 'D', 'F', 'G', 'H'], ' points ': [12, 29, 15, 19, 10]}) print (df2) team points 0 to 12 1 D 29 2 F 15 3 G 19 4:10 a.m.
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อตรวจสอบว่า DataFrames ทั้งสองเท่ากันหรือไม่:
#check if two DataFrames are equal df1. equals (df2) False
เอาต์พุตส่งคืน False ซึ่งหมายความว่า DataFrames ทั้งสองไม่เท่ากัน
จากนั้นเราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาแถวที่มีอยู่ใน DataFrame ที่สอง แต่ไม่ใช่แถวแรก:
#perform outer join on two DataFrames all_df = df1. merge (df2, indicator= True , how=' outer ') #find which rows only exist in second DataFrame only_df2 = all_df[all_df[' _merge '] == ' right_only '] only_df2 = only_df2. drop (' _merge ', axis= 1 ) #view results print (only_df2) team points 5 F 15 6 G 19 7:10 a.m.
จากผลลัพธ์เราจะเห็นว่ามีสามแถวใน DataFrame ที่สองซึ่งไม่มีอยู่ใน DataFrame แรก
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:
Pandas: เพิ่มคอลัมน์จาก DataFrame หนึ่งไปยังอีก DataFrame
นุ่น: รับแถวที่ไม่ได้อยู่ใน DataFrame อื่น
Pandas: วิธีตรวจสอบว่าหลายคอลัมน์เท่ากันหรือไม่