สมมติว่าคุณมี DataFrame และต้องการคำนวณ rank (อันดับ) ของคอลัมน์ Age โดยใช้วิธี 'min' สำหรับค่าที่ซ้ำกัน
วิธีแก้ปัญหา
- สร้าง DataFrame
- ใช้
df['Age'].rank(axis=0, method='min', ascending=True)คำนวณ rank - เก็บผลลัพธ์ไว้ในคอลัมน์ใหม่ 'Rank'
ตัวอย่างโค้ด
import pandas as pd
data = {'Id': [1, 2, 3, 4, 5],
'Name': ["Adam", "David", "Michael", "Peter", "William"],
'Age': [12, 13, 14, 12, 13]}
df = pd.DataFrame(data)
# คำนวณ rank แบบ min (ค่าที่เท่ากันได้ rank ต่ำสุด)
df["Rank"] = df["Age"].rank(axis=0, method='min', ascending=True)
print("DataFrame พร้อม Rank:")
print(df)
ผลลัพธ์
Id Name Age Rank
0 1 Adam 12 1.0
1 2 David 13 3.0
2 3 Michael 14 5.0
3 4 Peter 12 1.0
4 5 William 13 3.0
คำอธิบาย method='min':
- ค่าที่เท่ากันจะได้ rank ต่ำสุด (minimum rank) ของกลุ่มนั้นๆ
- Age=12 มี 2 คน ได้ rank 1.0 (ไม่ใช่ 1.5)
- Age=13 มี 2 คน ได้ rank 3.0 (ข้าม rank 2)
- Age=14 มี 1 คน ได้ rank 5.0
method อื่นๆ: 'average' (default), 'max', 'first', 'dense'