Katakanlah saya memiliki rangkaian waktu di mana saya biasanya memiliki data yang tersedia untuk rentang tahun tertentu yang berkelanjutan, tetapi nilai yang hilang sebelum dan sesudah rentang tersebut, seperti ini:
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
Apakah ada cara untuk mengisi (sejumlah) nilai yang hilang berdasarkan tren yang terlihat pada nilai yang tersedia?
Katakanlah saya ingin mengisi maksimal 2 nilai di setiap arah, hasilnya akan terlihat seperti ini:
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
Juga: apakah ada cara untuk memastikan bahwa imputasi ini hanya dilakukan ketika nilai yang tersedia mencukupi, misalnya saya hanya ingin mengisi maksimal 2 nilai di setiap arah jika setidaknya ada 3 nilai yang tersedia (atau dalam istilah yang lebih umum, isi n hanya jika n + m tersedia)?