วิธีเปรียบเทียบสองคอลัมน์ใน pandas: พร้อมตัวอย่าง


บ่อยครั้งคุณอาจต้องการเปรียบเทียบสองคอลัมน์ใน Pandas DataFrame และเขียนผลการเปรียบเทียบไปยังคอลัมน์ที่สาม

คุณสามารถทำได้โดยใช้ไวยากรณ์ต่อไปนี้:

 conditions=[(condition1),(condition2)]
choices=[" choice1 "," choice2 "]

df[" new_column_name "]=np. select (conditions, choices, default)

นี่คือสิ่งที่รหัสนี้ทำ:

  • เงื่อนไข คือเงื่อนไขที่ต้องตรวจสอบระหว่างสองคอลัมน์
  • ตัวเลือก คือผลลัพธ์ที่ส่งคืนตามเงื่อนไข
  • np.select ใช้เพื่อส่งคืนผลลัพธ์ในคอลัมน์ใหม่

ตัวอย่างต่อไปนี้แสดงวิธีใช้โค้ดนี้ในทางปฏิบัติ

ตัวอย่าง: เปรียบเทียบสองคอลัมน์ใน Pandas

สมมติว่าเรามี DataFrame ต่อไปนี้ซึ่งแสดงจำนวนประตูที่ทีมฟุตบอลสองทีมทำได้ในการแข่งขันที่แตกต่างกันห้านัด:

 import numpy as np
import pandas as pd

#createDataFrame
df = pd. DataFrame ({' A_points ': [1, 3, 3, 3, 5],
                   ' B_points ': [4, 5, 2, 3, 2]})
             
#view DataFrame      
df

          A_points B_points
0 1 4
1 3 5
2 3 2
3 3 3
4 5 2

เราสามารถใช้โค้ดต่อไปนี้เพื่อเปรียบเทียบจำนวนประตูต่อแถวและแสดงผู้ชนะการแข่งขันในคอลัมน์ที่สาม:

 #define conditions
conditions = [df[' A_points '] > df[' B_points '], 
              df[' A_points '] < df[' B_points ']]

#define choices
choices = [' A ', ' B ']

#create new column in DataFrame that displays results of comparisons
df[' winner '] = np. select (conditions, choices, default=' Tie ')

#view the DataFrame
df

          A_points B_points winner
0 1 4 B
1 3 5 B
2 3 2 A
3 3 3 Tie
4 5 2 A

ผลลัพธ์การเปรียบเทียบจะแสดงในคอลัมน์ใหม่ที่เรียกว่า ผู้ชนะ

ความคิดเห็น

ต่อไปนี้เป็นสิ่งที่ควรคำนึงถึงเมื่อเปรียบเทียบสองคอลัมน์ใน DataFrame ของ pandas:

  • จำนวน เงื่อนไข และ ตัวเลือก ต้องเท่ากัน
  • ค่า เริ่มต้น จะระบุค่าที่จะแสดงในคอลัมน์ใหม่หากไม่มีเงื่อนไขใดตรงเลย
  • ต้องใช้ NumPy และ Pandas เพื่อให้โค้ดนี้ทำงานได้

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:

วิธีเปลี่ยนชื่อคอลัมน์ใน Pandas
วิธีเพิ่มคอลัมน์ใน Pandas DataFrame
วิธีเปลี่ยนลำดับคอลัมน์ใน Pandas DataFrame

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

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