Pandas: วิธีรับ n แถวแรกตามกลุ่ม


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

 df. groupby (' group_column '). head ( 2 ). reset_index (drop= True )

ไวยากรณ์เฉพาะนี้จะส่งคืน 2 บรรทัดแรกต่อกลุ่ม

เพียงเปลี่ยนค่าในฟังก์ชัน head() เพื่อส่งคืนแถวบนสุดเป็นจำนวนอื่น

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'G', 'F', 'F', 'G', 'G', 'F', 'F', 'F'],
                   ' points ': [5, 7, 7, 9, 12, 9, 9, 4, 7, 7]})

#view DataFrame
print (df)

  team position points
0 AG 5
1 AG 7
2 AG 7
3 AF 9
4AF 12
5 BG 9
6 BG 9
7 BF 4
8 BF 7
9 BF 7

ตัวอย่างที่ 1: รับ N แถวแรกที่จัดกลุ่มตามคอลัมน์

รหัสต่อไปนี้แสดงวิธีการส่งคืน 2 แถวแรก โดยจัดกลุ่มตามตัวแปร ทีม :

 #get top 2 rows grouped by team
df. groupby (' team '). head ( 2 ). reset_index (drop= True )

        team position points
0 A G 5
1 A G 7
2 B G 9
3 B G 9

ผลลัพธ์จะแสดง 2 บรรทัดแรก โดยจัดกลุ่มตามตัวแปร ทีม

ตัวอย่างที่ 2: รับ N แถวแรกที่จัดกลุ่มตามหลายคอลัมน์

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

 #get top 2 rows grouped by team and position
df. groupby ([' team ', ' position ']). head ( 2 ). reset_index (drop= True )

team position points
0 A G 5
1 A G 7
2 A F 9
3 A F 12
4 B G 9
5 B G 9
6 B F 4
7 B F 7

ผลลัพธ์จะแสดง 2 บรรทัดแรก โดยจัดกลุ่มตามตัวแปร ทีม และ ตำแหน่ง

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

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

Pandas: วิธีค้นหาค่าที่ไม่ซ้ำในคอลัมน์
Pandas: วิธีค้นหาค่าที่ไม่ซ้ำในหลายคอลัมน์
Pandas: วิธีนับการเกิดขึ้นของค่าเฉพาะในคอลัมน์

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

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