บทความนี้สาธิตวิธีจัดกลุ่มข้อมูลใน Pandas DataFrame และเรียงลำดับตามขนาดของแต่ละกลุ่มจากมากไปน้อย (Descending Order)
แนวคิดหลัก
- ใช้
groupby()จัดกลุ่ม - ใช้
size()นับจำนวนในแต่ละกลุ่ม - ใช้
sort_values(ascending=False)เรียงจากมากไปน้อย
โค้ดตัวอย่าง
import pandas as pd
# สร้าง DataFrame
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
"Reg_Price": [1000, 1400, 1000, 900, 1700, 900]
})
print("DataFrame ต้นฉบับ:")
print(dataFrame)
# จัดกลุ่มตาม Reg_Price และเรียงตามขนาดกลุ่ม (มากไปน้อย)
result = dataFrame.groupby('Reg_Price').size().sort_values(ascending=False)
print("\nผลลัพธ์เรียงจากมากไปน้อย:")
print(result)
ผลลัพธ์
Reg_Price
1000 2
900 2
1700 1
1400 1
dtype: int64
การตีความ
- ราคา 1000 และ 900 มีข้อมูลมากที่สุด (2 แถวต่อกลุ่ม)
- ราคา 1700 และ 1400 มีข้อมูลน้อยที่สุด (1 แถวต่อกลุ่ม)
การประยุกต์ใช้
การเรียง Descending มีประโยชน์เมื่อต้องการ:
- หากลุ่มที่มีข้อมูลมากที่สุด (Majority class)
- ระบุ Top-K กลุ่มที่สำคัญที่สุด
- วิเคราะห์การกระจายข้อมูล (Data Distribution)
- ตัดสินใจ Sampling strategy
รวม Ascending และ Descending
# ทั้งสองแบบในครั้งเดียว
asc = dataFrame.groupby('Reg_Price').size().sort_values(ascending=True)
desc = dataFrame.groupby('Reg_Price').size().sort_values(ascending=False)
print("Ascending (น้อยไปมาก):")
print(asc)
print("\nDescending (มากไปน้อย):")
print(desc)