Pandas: จัดเรียง dataframe ตามดัชนีและคอลัมน์


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

 df = df. sort_values (by = [' column_name ', ' index '], ascending = [ False , True ])

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

ตัวอย่าง: จัดเรียง DataFrame ตามดัชนีและคอลัมน์

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

 import pandas as pd

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

#view first few rows
df. head ()

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

#sort by points and then by index
df. sort_values (by = [' points ', ' id '], ascending = [ False , True ])

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

DataFrame ที่ได้จะถูกจัดเรียงตามคะแนนจากมากไปหาน้อย จากนั้นตามดัชนีจากน้อยไปมาก (หากมีผู้เล่นสองคนที่ทำคะแนนเท่ากัน)

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

 #sort by points and then by index
df. sort_values (by = [' points ', ' id '])

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

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

 #sort by points and then by index
df. rename_axis (' index '). sort_values (by = [' points ', ' id '])

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

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

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

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

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