วิธีค้นหาค่าสูงสุดต่อกลุ่มที่ 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