วิธีจัดเรียงตามหลายคอลัมน์ใน pandas (พร้อมตัวอย่าง)


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

 df = df. sort_values ([' column1 ', ' column2 '], ascending=( False , True ))

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

ตัวอย่าง: จัดเรียงตามหลายคอลัมน์ใน Pandas

สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [14, 20, 9, 20, 25, 29, 20, 25],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

        points assists rebounds
0 14 5 11
1 20 7 8
2 9 7 10
3 20 9 6
4 25 12 6
5 29 9 5
6 20 9 9
7 25 4 12

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

 #sort by points ascending, then assists ascending
df = df. sort_values ([' points ', ' assists '])

#view updated DataFrame
df

	points assists rebounds
2 9 7 10
0 14 5 11
1 20 7 8
3 20 9 6
6 20 9 9
7 25 4 12
4 25 12 6
5 29 9 5

โปรดทราบว่าเส้นจะเรียงลำดับตาม จุด จากน้อยไปหามาก (เล็กที่สุดไปหาใหญ่ที่สุด) จากนั้นจึง ผ่านจากน้อย ไปหามาก

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

 #sort by points descending, then assists ascending
df = df. sort_values ([' points ', ' assists '], ascending = ( False , True )))

#view updated DataFrame
df

        points assists rebounds
5 29 9 5
7 25 4 12
4 25 12 6
1 20 7 8
3 20 9 6
6 20 9 9
0 14 5 11
2 9 7 10

โปรดทราบว่าเส้นจะจัดเรียงตาม จุด จากมากไปน้อย (มากไปน้อย) จากนั้นจึง ผ่านจาก น้อยไปมาก

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

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของฟังก์ชัน pandas sort_values() ได้ที่นี่

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

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

นุ่น: วิธีจัดเรียงตามวันที่
Pandas: วิธีจัดเรียงคอลัมน์ตามชื่อ
Pandas: วิธีจัดเรียงตามทั้งดัชนีและคอลัมน์

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

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