Pandas: สูตรสำหรับ “ถ้าค่าอยู่ในคอลัมน์แล้ว”


คุณสามารถใช้ไวยากรณ์ต่อไปนี้ในแพนด้าเพื่อกำหนดค่าให้กับคอลัมน์ตามค่าของคอลัมน์อื่น:

 df[' new '] = df[' col ']. map ( lambda x: ' new1 ' if ' A ' in x else ' new2 ' if ' B ' in x else '')

ไวยากรณ์เฉพาะนี้จะสร้างคอลัมน์ใหม่ที่เรียกว่า “ใหม่” ซึ่งจะใช้ค่าต่อไปนี้:

  • new1 ถ้าค่าใน col เท่ากับ A
  • new2 ถ้าค่าใน col เท่ากับ B
  • สตริงว่างหากค่าใน col เท่ากับค่าอื่นๆ

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: การใช้สูตรสำหรับ “ถ้าค่าในคอลัมน์แล้ว” ใน Pandas

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C'],
                   ' points ': [14, 22, 25, 34, 30, 12, 10, 18]})

#view DataFrame
print (df)

  team points
0 to 14
1 to 22
2 to 25
3 to 34
4 B 30
5 B 12
6 C 10
7 C 18

ตอนนี้สมมติว่าเราต้องการสร้างคอลัมน์ใหม่ที่เรียกว่า เมือง ซึ่งค่าขึ้นอยู่กับค่าที่สอดคล้องกันในคอลัมน์ ทีม

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำสิ่งนี้:

 #create new column called city whose values depend on values in team column
df[' city '] = df[' team ']. map ( lambda x: ' Atlanta ' if ' A ' in x else ' Boston ' if ' B ' in x else '')

#view updated DataFrame                            
print (df)

  team points city
0 A 14 Atlanta
1 to 22 Atlanta
2 to 25 Atlanta
3 to 34 Atlanta
4 B 30 Boston
5 B 12 Boston
6 C 10         
7 C 18       

ไวยากรณ์เฉพาะนี้สร้างคอลัมน์ใหม่ชื่อ เมือง ซึ่งรับค่าต่อไปนี้:

  • แอตแลนต้า หากมูลค่า ทีม เท่ากับ A
  • บอสตัน ถ้ามูลค่า ทีม เท่ากับ B
  • สตริงว่างหากค่าใน ทีม เท่ากับค่าอื่นๆ

โปรดทราบว่าในตัวอย่างนี้ เราใช้สตริงว่างหลังคำสั่ง else สุดท้ายเพื่อปล่อยค่าที่ไม่ตรงตามเงื่อนไขใดๆ ให้ว่างไว้

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

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

Pandas: รับดัชนีของแถวที่มีคอลัมน์ตรงกับค่า
Pandas: วิธีเลือกคอลัมน์ที่มีสตริงเฉพาะ
Pandas: วิธีตรวจสอบว่าคอลัมน์มีสตริงหรือไม่

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

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