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: วิธีตรวจสอบว่าคอลัมน์มีสตริงหรือไม่