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

Python Pandas - เรียง DataFrame ตามความถี่ของ Element เรียงจากมากไปน้อย

นับความถี่ของค่าในคอลัมน์ (Count) แล้วเรียง DataFrame ตามความถี่จากมากไปน้อย (ascending=False)

ตัวอย่างโค้ด

import pandas as pd

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)

# Count frequency per Car, sort descending
dataFrame = dataFrame.groupby(['Car'])['Reg_Price'].count().reset_index(name='Count').sort_values(['Count'], ascending=False)

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

ผลลัพธ์

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

คำอธิบาย

  • groupby(['Car'])['Reg_Price'].count() นับจำนวนแถวต่อ Car
  • .reset_index(name='Count') แปลงกลับเป็น DataFrame คอลัมน์ Count
  • .sort_values(['Count'], ascending=False) เรียง Count มากไปน้อย
  • BMW และ Lexus ทั้งคู่ 2 ครั้ง (Stable sort คงลำดับเดิม)