วิธีใช้ฟังก์ชันกับ pandas groupby


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อใช้ฟังก์ชัน groupby() และ Apply() ร่วมกันใน DataFrame ของ pandas:

 df. groupby (' var1 '). apply ( lambda x: some function)

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points_for ': [18, 22, 19, 14, 11, 20, 28],
                   ' points_against ': [14, 21, 19, 14, 12, 20, 21]})

#view DataFrame
print (df)

  team points_for points_against
0 to 18 14
1 To 22 21
2 A 19 19
3 B 14 14
4 B 11 12
5 B 20 20
6 B 28 21

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

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน groupby( ) และ Apply() เพื่อค้นหาความถี่สัมพัทธ์ของแต่ละชื่อทีมใน Pandas DataFrame:

 #find relative frequency of each team name in DataFrame
df. groupby (' team '). apply ( lambda x:x[' team ']. count ()/ df.shape [0])

team
A 0.428571
B 0.571429
dtype:float64

จากผลลัพธ์จะพบว่าทีม A ปรากฏใน 42.85% ของแถวทั้งหมด และทีม B ปรากฏใน 57.14% ของแถวทั้งหมด

ตัวอย่างที่ 2: ใช้ groupby() และ Apply() เพื่อค้นหาค่าสูงสุด

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน groupby( ) และ Apply() เพื่อค้นหาค่า “points_for” สูงสุดสำหรับแต่ละทีม:

 #find max "points_for" values for each team
df. groupby (' team '). apply ( lambda x:x[' points_for ']. max ())

team
At 22
B28
dtype: int64

จากผลลัพธ์เราจะเห็นว่าคะแนนสูงสุดที่ทีม A ทำได้คือ 22 และคะแนนสูงสุดที่ทีม B ทำได้คือ 28

ตัวอย่างที่ 3: ใช้ groupby() และ Apply() เพื่อทำการคำนวณแบบกำหนดเอง

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน groupby( ) และ Apply() เพื่อค้นหาความแตกต่างโดยเฉลี่ยระหว่าง “points_for” และ “points_against” สำหรับแต่ละทีม:

 #find max "points_for" values for each team
df. groupby (' team '). apply ( lambda x: (x[' points_for '] - x[' points_against ']). mean ())

team
A 1.666667
B 1.500000
dtype:float64

จากผลลัพธ์ เราจะเห็นว่าความแตกต่างโดยเฉลี่ยระหว่าง “แต้มสำหรับ” และ “แต้มต่อ” คือ 1.67 สำหรับทีม A และ 1.50 สำหรับทีม B

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

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

วิธีดำเนินการผลรวม GroupBy ใน Pandas
วิธีใช้ Groupby และ Plot ใน Pandas
วิธีนับค่าที่ไม่ซ้ำโดยใช้ GroupBy ใน Pandas

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

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