Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Pandas - จัดเรียง DataFrame ตามลำดับจากมากไปหาน้อยตามความถี่ขององค์ประกอบ


ในการเรียงลำดับข้อมูลในลำดับจากน้อยไปมากหรือมากไปหาน้อย ใช้ sort_values() วิธีการ สำหรับลำดับจากมากไปน้อย ใช้สิ่งต่อไปนี้ในวิธี sort_values() -

ascending=False

นำเข้าไลบรารีที่จำเป็น -

import pandas as pd

สร้าง DataFrame ที่มี 3 คอลัมน์ -

dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'BMW', 'Mustang', 'Mercedes', 'Lexus'],"Reg_Price": [7000, 1500, 5000, 8000, 9000, 2000],"Place": ['Pune', 'Delhi', 'Mumbai', 'Hyderabad', 'Bangalore', 'Chandigarh']
   }
)

ในการเรียงลำดับ DataFrame จากมากไปหาน้อยตามความถี่ขององค์ประกอบ เราต้องนับเหตุการณ์ที่เกิดขึ้น ดังนั้น count() จึงใช้กับ sort_values() ที่ตั้งค่าไว้สำหรับการเรียงลำดับจากมากไปน้อย -

dataFrame.groupby(['Car'])['Reg_Price'].count().reset_index(name='Count').sort_values(['Count'], ascending=False)

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

import pandas as pd

# Create DataFrame
dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'BMW', 'Mustang', 'Mercedes', 'Lexus'],"Reg_Price": [7000, 1500, 5000, 8000, 9000, 2000],"Place": ['Pune', 'Delhi', 'Mumbai', 'Hyderabad', 'Bangalore', 'Chandigarh']
   }
)

print"DataFrame ...\n",dataFrame

# Sort DataFrame in descending order according to the element frequency
dataFrame = dataFrame.groupby(['Car'])['Reg_Price'].count().reset_index(name='Count').sort_values(['Count'], ascending=False)

print"\nSorting DataFrame ...\n",dataFrame

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

DataFrame ...
         Car     Place   Reg_Price
0       BMW       Pune        7000
1     Lexus      Delhi        1500
2       BMW     Mumbai        5000
3   Mustang  Hyderabad        8000
4  Mercedes  Bangalore        9000
5     Lexus Chandigarh        2000

Sorting DataFrame ...
        Car   Count
0       BMW       2
1     Lexus       2
2  Mercedes       1
3   Mustang       1