如何访问数据框的特定单元格并对其进行一些计算

时间:2019-05-11 12:31:32

标签: python pandas dataframe

我有以下数据框:


                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

2 个答案:

答案 0 :(得分:1)

尝试结合使用replaceinterpolate

 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函数。