สมมติว่าฉันมีอนุกรมเวลาซึ่งโดยปกติแล้วฉันมีข้อมูลสำหรับช่วงหลายปีที่ต่อเนื่องกัน แต่ไม่มีค่าก่อนและหลังช่วงนั้น เช่นนี้
df = pd.DataFrame({'year': ["2000","2001","2002", "2003","2004", "2005","2006", "2007"], 'cakes eaten': [np.nan, np.nan, np.nan, 3, 4, 5, np.nan, np.nan]})
print(df)
year cakes eaten
0 2000 NaN
1 2001 NaN
2 2002 NaN
3 2003 3.0
4 2004 4.0
5 2005 5.0
6 2006 NaN
7 2007 NaN
มีวิธีเติมค่าที่หายไป (ตามจำนวนที่กำหนด) ตามแนวโน้มที่เห็นในค่าที่มีอยู่หรือไม่?
สมมติว่าฉันต้องการเติมค่าสูงสุด 2 ค่าในแต่ละทิศทาง ผลลัพธ์ที่ได้จะมีลักษณะดังนี้:
year cakes eaten
0 2000 NaN
1 2001 1.0
2 2002 2.0
3 2003 3.0
4 2004 4.0
5 2005 5.0
6 2006 6.0
7 2007 7.0
นอกจากนี้: มีวิธีที่จะทำให้แน่ใจว่าการใส่ค่านี้จะดำเนินการเมื่อมีค่าที่มีอยู่เพียงพอเท่านั้น เช่น ฉันต้องการเติมค่าสูงสุด 2 ค่าในแต่ละทิศทางหากมีอย่างน้อย 3 ค่า ค่าที่มีอยู่ (หรือในแง่ทั่วไป ให้กรอก n เฉพาะในกรณีที่ n + m เป็นค่าว่าง) ?