Pandas: วิธีใช้ groupby และนับแบบมีเงื่อนไข


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

 df. groupby (' var1 ')[' var2 ']. apply ( lambda x:(x==' val '). sum ()). reset_index (name=' count ')

ไวยากรณ์เฉพาะนี้จะจัดกลุ่มแถวของ DataFrame ตาม var1 แล้วนับจำนวนแถวโดยที่ var2 เท่ากับ “val”

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

ตัวอย่าง: Groupby และ Count พร้อมเงื่อนไขใน Pandas

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' pos ': ['Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28]})

#view DataFrame
print (df)

  team pos points
0 A Gu 18
1 A Fo 22
2 A Fo 19
3 A Fo 14
4 B Gu 14
5 B Gu 11
6 B Fo 20
7 B Fo 28

รหัสต่อไปนี้แสดงวิธีจัดกลุ่ม DataFrame ตามตัวแปร ทีม และนับจำนวนแถวที่ตัวแปร pos เท่ากับ “Gu”:

 #groupby team and count number of 'pos' equal to 'Gu'
df_count = df. groupby (' team ')[' pos ']. apply ( lambda x: (x==' Gu '). sum ()). reset_index (name=' count ')

#view results
print (df_count)

  team count
0 to 1
1 B 2

จากผลลัพธ์เราจะเห็นได้ว่า:

  • ทีม A มี 1 แถว โดยคอลัมน์ pos เท่ากับ “Gu”
  • ทีม B มี 2 แถว โดยคอลัมน์ pos เท่ากับ “Gu”

เราสามารถใช้ไวยากรณ์ที่คล้ายกันเพื่อดำเนินการ groupby และนับด้วยเงื่อนไขตัวเลข

ตัวอย่างเช่น รหัสต่อไปนี้แสดงวิธีการจัดกลุ่มตามตัวแปร ทีม และนับจำนวนแถวที่ ตัวแปรคะแนน มากกว่า 15:

 #groupby team and count number of 'points' greater than 15
df_count = df. groupby (' team ')[' points ']. apply ( lambda x: (x>15). sum ()). reset_index (name=' count ')

#view results
print (df_count)

  team count
0 to 3
1 B 2

จากผลลัพธ์เราจะเห็นได้ว่า:

  • ทีม A มี 3 เส้นโดยที่คอลัมน์คะแนนมากกว่า 15
  • ทีม B มี 2 เส้นโดยที่คอลัมน์คะแนนมากกว่า 15

คุณสามารถใช้ไวยากรณ์ที่คล้ายกันเพื่อดำเนินการ groupby และนับด้วยเงื่อนไขเฉพาะใดๆ ที่คุณต้องการ

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

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

วิธีนับค่าที่ไม่ซ้ำโดยใช้ Pandas GroupBy
วิธีใช้ฟังก์ชันกับ Pandas Groupby
วิธีสร้างพล็อตบาร์จาก Pandas GroupBy

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

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