ภาพรวม
Rolling Mean หรือค่าเฉลี่ยเคลื่อนที่ ใช้วิเคราะห์แนวโน้มข้อมูลอนุกรมเวลา (time series) โดยใช้เมธอด rolling() ร่วมกับ apply() หรือเรียก mean() โดยตรง
ขั้นตอนการทำงาน
- Import pandas
- สร้าง DataFrame ที่มีคอลัมน์หมวดหมู่ (Car) และค่าตัวเลข (Reg_Price)
- จัดกลุ่มด้วย
groupby()แล้วใช้rolling(window=2).mean()
ตัวอย่างโค้ด
import pandas as pd
dataFrame = pd.DataFrame({
"Car": ['Tesla', 'Mercedes', 'Tesla', 'Mustang', 'Mercedes', 'Mustang'],
"Reg_Price": [5000, 1500, 6500, 8000, 9000, 6000]
})
print("DataFrame ...\n", dataFrame)
print("\nRolling Mean...\n", dataFrame.groupby("Car")["Reg_Price"].apply(
lambda x: x.rolling(center=False, window=2).mean()))
ผลลัพธ์
DataFrame ...
Car Reg_Price
0 Tesla 5000
1 Mercedes 1500
2 Tesla 6500
3 Mustang 8000
4 Mercedes 9000
5 Mustang 6000
Rolling Mean...
0 NaN
1 NaN
2 5750.0
3 NaN
4 5250.0
5 7000.0
Name: Reg_Price, dtype: float64
คำอธิบาย
window=2หมายถึงค่าเฉลี่ยของ 2 แถวล่าสุดcenter=False(ค่าเริ่มต้น) ใช้ค่าก่อนหน้า ไม่รวมค่าปัจจุบัน- แถวแรกของแต่ละกลุ่มจะเป็น NaN เพราะไม่มีข้อมูลก่อนหน้าเพียงพอ
- วิธีสั้นๆ:
dataFrame.groupby("Car")["Reg_Price"].rolling(2).mean()