Pandas: วิธีใช้ apply & lambda ร่วมกัน


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อใช้ฟังก์ชัน lambda กับ Pandas DataFrame:

 df[' col '] = df[' col ']. apply ( lambda x: ' value1 ' if x < 20 else ' value2 ')

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4]})

#view DataFrame
print (df)

  team points assists
0 to 18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4

ตัวอย่างที่ 1: ใช้ Apply และ Lambda เพื่อสร้างคอลัมน์ใหม่

รหัสต่อไปนี้แสดงวิธีใช้ Apply และ lambda เพื่อสร้างคอลัมน์ใหม่ที่มีค่าขึ้นอยู่กับค่าของคอลัมน์ที่มีอยู่:

 #create new column called 'status'
df[' status '] = df[' points ']. apply ( lambda x: ' Bad ' if x < 20 else ' Good ')

#view updated DataFrame
print (df)

  team points assists status
0 A 18 5 Bad
1 B 22 7 Good
2 C 19 7 Bad
3 D 14 9 Bad
4 E 14 12 Bad
5 F 11 9 Bad
6 G 20 9 Good
7:28 4 Good

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

  • ไม่ดี ‘ หากค่าในคอลัมน์คะแนนน้อยกว่า 20
  • ดี ‘ ถ้าค่าในคอลัมน์คะแนนมากกว่าหรือเท่ากับ 20

ตัวอย่างที่ 2: ใช้ Apply และ Lambda เพื่อแก้ไขคอลัมน์ที่มีอยู่

รหัสต่อไปนี้แสดงวิธีใช้ Apply และ lambda เพื่อแก้ไขคอลัมน์ที่มีอยู่ใน DataFrame:

 #modify existing 'points' column
df[' points '] = df[' points ']. apply ( lambda x: x/2 if x < 20 else x*2)

#view updated DataFrame
print (df)

  team points assists
0 to 9.0 5
1 B 44.0 7
2 C 9.5 7
3D 7.0 9
4 E 7.0 12
5 F 5.5 9
6 G 40.0 9
7 A.M. 56.0 4

ในตัวอย่างนี้ เราแก้ไขค่าของคอลัมน์ จุด ที่มีอยู่โดยใช้กฎต่อไปนี้ในฟังก์ชัน lambda:

  • ถ้าค่าน้อยกว่า 20 ให้หารค่าด้วย 2
  • ถ้าค่ามากกว่าหรือเท่ากับ 20 ให้คูณค่าด้วย 2

เมื่อใช้ฟังก์ชันแลมบ์ดานี้ เราสามารถแก้ไขค่าของคอลัมน์ จุด ที่มีอยู่ได้

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

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

วิธีใช้ฟังก์ชันกับ Pandas Groupby
วิธีเติม NaN ด้วยค่าจากคอลัมน์อื่นใน Pandas

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

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