Pandas: วิธีเปรียบเทียบคอลัมน์ใน dataframes สองอันที่แตกต่างกัน
คุณสามารถใช้วิธีการต่อไปนี้เพื่อเปรียบเทียบคอลัมน์จาก Panda DataFrames สองอันที่แตกต่างกัน:
วิธีที่ 1: นับค่าที่ตรงกันระหว่างคอลัมน์
df1[' my_column ']. isin (df2[' my_column ']). value_counts ()
วิธีที่ 2: แสดงค่าที่ตรงกันระหว่างคอลัมน์
p.d. merge (df1, df2, on=[' my_column '], how=' inner ')
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีกับ DataFrames แพนด้าต่อไปนี้:
import numpy as np import pandas as pd #create first DataFrame df1 = pd. DataFrame ({' team ': ['Mavs', 'Rockets', 'Spurs', 'Heat', 'Nets'], ' points ': [22, 30, 15, 17, 14]}) #view DataFrame print (df1) team points 0 Mavs 22 1 Rockets 30 2 Spurs 15 3 Heat 17 4 Nets 14 #create second DataFrame df2 = pd. DataFrame ({' team ': ['Mavs', 'Thunder', 'Spurs', 'Nets', 'Cavs'], ' points ': [25, 40, 31, 32, 22]}) #view DataFrame print (df2) team points 0 Mavs 25 1 Thunder 40 2 Spurs 31 3 Nets 32 4 Cavs 22
ตัวอย่างที่ 1: นับค่าที่ตรงกันระหว่างคอลัมน์
โค้ดต่อไปนี้แสดงวิธีนับจำนวนค่าที่ตรงกันระหว่างคอลัมน์ ทีม ในแต่ละ DataFrame:
#count matching values in team columns
df1[' team ']. isin (df2[' team ']). value_counts ()
True 3
False 2
Name: team, dtype: int64
เราเห็นว่า DataFrames ทั้งสองมีชื่อทีมเหมือนกัน 3 ชื่อและมีชื่อทีมที่แตกต่างกัน 2 ชื่อ
ตัวอย่างที่ 2: แสดงค่าที่ตรงกันระหว่างคอลัมน์
รหัสต่อไปนี้แสดงวิธีการแสดงค่าที่ตรงกันจริงระหว่างคอลัมน์ ทีม ในแต่ละ DataFrame:
#display matching values between team columns
p.d. merge (df1, df2, on=[' team '], how=' inner ')
team points_x points_y
0 Mavs 22 25
1 Spurs 15 31
2 Nets 14 32
จากผลลัพธ์เราจะเห็นว่า DataFrames ทั้งสองมีค่าเหมือนกันในคอลัมน์ ทีม ดังนี้
- แมฟ
- สเปอร์ส
- อวน
ที่เกี่ยวข้อง: วิธีการเข้าร่วมภายในในนุ่น (พร้อมตัวอย่าง)
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:
วิธีเปลี่ยนชื่อคอลัมน์ใน Pandas
วิธีเพิ่มคอลัมน์ใน Pandas DataFrame
วิธีเปลี่ยนลำดับคอลัมน์ใน Pandas DataFrame