วิธีค้นหาค่าสูงสุดต่อกลุ่มที่ pandas


บ่อยครั้งที่คุณอาจต้องการค้นหาค่าสูงสุดต่อกลุ่มใน DataFrame ของแพนด้า

โชคดีที่ทำได้ง่ายโดยใช้ฟังก์ชัน groupby() และ max() โดยมีไวยากรณ์ต่อไปนี้:

 df. groupby (' column_name '). max ()

บทช่วยสอนนี้จะอธิบายตัวอย่างการใช้งานจริงของฟังก์ชันนี้โดยใช้ pandas DataFrame ต่อไปนี้:

 import pandas as pd

#create pandas DataFrame
df = pd. DataFrame ({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   'points':[24, 23, 27, 11, 14, 8, 13],
                   'rebounds': [11, 8, 7, 6, 6, 5, 12]})

#display DataFrame
print (df)

  team points rebounds
0 to 24 11
1 to 23 8
2 B 27 7
3 B 11 6
4 B 14 6
5 C 8 5
6 C 13 12

ตัวอย่างที่ 1: ค่าสูงสุดของหลายคอลัมน์ที่จัดกลุ่มตามตัวแปร

รหัสต่อไปนี้แสดงวิธีการค้นหาค่าสูงสุดของหลายคอลัมน์ โดยจัดกลุ่มตามตัวแปรใน DataFrame:

 #find max values of points and rebounds, grouped by team
df. groupby (' team '). max (). reset_index ()


        team points rebounds
0 to 24 11
1 B 27 7
2 C 13 12

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

  • ทีม A มีค่า คะแนน สูงสุด 24 และค่า รีบาวด์ สูงสุด 11
  • ทีม B มีค่า คะแนน สูงสุด 27 และค่า รีบาวด์ สูงสุด 7
  • ทีม C มีค่า คะแนน สูงสุด 13 และค่า รีบาวด์ สูงสุด 12

โปรดทราบว่าเราใช้ฟังก์ชัน reset_index() เพื่อให้แน่ใจว่าดัชนีตรงกับดัชนีของ DataFrame ดั้งเดิม

ตัวอย่างที่ 2: ค่าสูงสุดของคอลัมน์เดียวที่จัดกลุ่มตามตัวแปร

รหัสต่อไปนี้แสดงวิธีการค้นหาค่าสูงสุดของคอลัมน์เดียว โดยจัดกลุ่มตามตัวแปรเดียว:

 #find max value of points, grouped by team
df. groupby (' team ')[' points ']. max (). reset_index ()

        team points
0 to 24
1 B 27
2 C 13

ตัวอย่างที่ 3: จัดเรียงตามค่าสูงสุด

นอกจากนี้เรายังสามารถใช้ฟังก์ชัน sort_values() เพื่อเรียงลำดับค่าสูงสุดได้

เราสามารถระบุ ascending=False เพื่อเรียงลำดับจากมากไปน้อย:

 #find max value by team, sort descending
df. groupby (' team ')[' points ']. max (). reset_index (). sort_values ([' points '], ascending= False )


        team points
1 B 27
0 to 24
2 C 13

หรือเราสามารถระบุ ascending=True เพื่อเรียงลำดับจากน้อยไปมาก:

 #find max value by team, sort ascending 
df. groupby (' team ')[' points ']. max (). reset_index (). sort_values ([' points '], ascending= True ) 

        team points
2 C 13
0 to 24
1 B 27

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

วิธีคำนวณผลรวมของคอลัมน์ใน Pandas
วิธีการคำนวณค่าเฉลี่ยของคอลัมน์ใน Pandas
วิธีค้นหาค่าสูงสุดของคอลัมน์ใน Pandas

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

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