Pandas: วิธีใช้ groupby & sort ภายในกลุ่ม


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

 df. sort_values ([' var1 ',' var2 '],ascending= False ). groupby (' var1 '). head ()

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

ตัวอย่าง: การใช้ GroupBy และการเรียงลำดับในกลุ่มใน Pandas

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ที่แสดงยอดขายที่เกิดขึ้นในร้านค้าสองแห่งที่แตกต่างกัน:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['B', 'B', 'A', 'A', 'B', 'B', 'A', 'A'],
                   ' sales ': [12, 25, 8, 14, 10, 20, 30, 30]})

#view DataFrame
print (df)

  blind sales
0 B 12
1 B 25
2 to 8
3 to 14
4 B 10
5 B 20
6 to 30
7 to 30

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

 #group by store and sort by sales values in descending order
df. sort_values ([' store ', ' sales '],ascending= False ). groupby (' store '). head ()

	blind sales
1 B 25
5 B 20
0 B 12
4 B 10
6 to 30
7 to 30
3 to 14
2 to 8

โปรดทราบว่าเราสามารถลบอาร์กิวเมนต์ ascending=False เพื่อเรียงลำดับมูลค่าการขายจากน้อยไปมาก:

 #group by store and sort by sales values in ascending order
df. sort_values ([' store ',' sales ']). groupby (' store '). head ()

	blind sales
2 to 8
3 to 14
6 to 30
7 to 30
4 B 10
0 B 12
5 B 20
1 B 25

โปรดทราบว่าฟังก์ชัน head() จะแสดงเฉพาะ 5 ค่าแรกต่อกลุ่ม

หากต้องการแสดงค่า n อันดับแรกต่อกลุ่ม ให้ใช้ head(n) แทน

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของการดำเนินการ GroupBy ใน pandas ได้ที่นี่

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

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

นุ่น: วิธีคำนวณผลรวมสะสมต่อกลุ่ม
Pandas: วิธีนับค่าที่ไม่ซ้ำตามกลุ่ม
นุ่น: วิธีคำนวณความสัมพันธ์ตามกลุ่ม

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

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