我有以下数据框:
Open Close
2018-05-23 277.760010 279.070007
2018-05-24 278.399994 277.850006
2018-05-25 277.630005 278.850006
2018-05-26 0.0 0.0
2018-05-27 0.0 0.0
2018-05-28 0.0 0.0
2018-05-29 278.510010 283.760010
2018-05-30 283.290009 291.720001
我需要做的是通过计算先前已知的开放值和下一已知的开放值的平均值来近似Nan值。
例如,2018-05-26的Open值将是:
277.630005是前一天的值 278.510010是
后三天的值所以它的近似值为(277.630005 + 278.510010)/ 2
怎么可能用这种方式来填充Open和Close值?
我想做的是:
for index,row in df.iterrows():
if row['Open'] == 0.0:
......
if row['Close']== 0.0:
.......
but i have no clue what i have to do
答案 0 :(得分:1)
尝试结合使用replace
和interpolate
:
df.replace(0,np.nan).interpolate()
Open Close
2018-05-23 277.760010 279.070007
2018-05-24 278.399994 277.850006
2018-05-25 277.630005 278.850006
2018-05-26 277.850006 280.077507
2018-05-27 278.070007 281.305008
2018-05-28 278.290009 282.532509
2018-05-29 278.510010 283.760010
2018-05-30 283.290009 291.720001
答案 1 :(得分:0)
尝试看看fillna函数。