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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *