สมมติว่าคุณมี DataFrame และต้องการคำนวณอัตราการเปลี่ยนแปลงเปอร์เซ็นต์ (percentage change) ของคอลัมน์ Id และ Age สำหรับ 2 แถวแรกและ 2 แถวสุดท้าย
วิธีแก้ปัญหา
- สร้าง DataFrame
- ใช้
df[['Id', 'Age']].pct_change()คำนวณ % change - ใช้ slicing
[0:2]สำหรับ 2 แถวบนสุด และ[-2:]สำหรับ 2 แถวล่างสุด
ตัวอย่างโค้ด
import pandas as pd
df = pd.DataFrame({
"Id": [1, 2, 3, None, 5],
"Age": [12, 12, 14, 13, None],
"Mark": [80, 90, None, 95, 85]
})
print("DataFrame ต้นฉบับ:\n", df)
# Percentage change สำหรับ 2 แถวบนสุด
print("\nId และ Age - 2 แถวบนสุด:")
print(df[['Id', 'Age']].pct_change()[0:2])
# Percentage change สำหรับ 2 แถวล่างสุด
print("\nId และ Age - 2 แถวล่างสุด:")
print(df[['Id', 'Age']].pct_change()[-2:])
ผลลัพธ์
DataFrame ต้นฉบับ:
Id Age Mark
0 1.0 12.0 80.0
1 2.0 12.0 90.0
2 3.0 14.0 NaN
3 NaN 13.0 95.0
4 5.0 NaN 85.0
Id และ Age - 2 แถวบนสุด:
Id Age
0 NaN NaN
1 1.0 0.0
Id และ Age - 2 แถวล่างสุด:
Id Age
3 0.000000 -0.071429
4 0.666667 0.000000
คำอธิบาย:
pct_change()คำนวณ (current - previous) / previous- แถวแรกจะเป็น NaN เสมอ เพราะไม่มีข้อมูลก่อนหน้า
- แถวที่ 3 (index 3) มี Id เป็น NaN ทำให้ % change ของ Id เป็น 0 (NaN ไม่ถูกนับ)
- ค่า NaN ใน Age ทำให้ % change คำนวณไม่ได้ในบางแถว