在python中,如何用上面的值和下面的值的平均值填充空值?

在python中,如何用上面的值和下面的值的平均值填充空值?,python,python-3.x,pandas,python-2.7,python-requests,Python,Python 3.x,Pandas,Python 2.7,Python Requests,我的数据如下所示: ID gcs compact active_clay WTS LOI 0 EA01 1530 40 9.02 22.7 4.58 1 EA02 NAN NAN NAN NAN NAN 2 EA03 1550 39 9.02 23.9 4.

我的数据如下所示:

    ID      gcs    compact    active_clay       WTS     LOI
0   EA01    1530    40          9.02            22.7    4.58
1   EA02    NAN     NAN         NAN             NAN      NAN
2   EA03    1550    39          9.02            23.9    4.58
3   EA04    NAN     NAN          NAN            NAN      NAN
4   EA05    NAN     NAN          NAN            NAN      NAN
5   EA06    NAN     NAN          NAN            NAN      NAN
6   EA07    1520    40           9.02           24.9     4.58
7   EA08    NAN     NAN          NAN            NAN      NAN
8   EA09    1530    40           9.02           23.9     4.52
9   EA10    NAN    NAN           NAN            NAN      NAN

我希望用整个数据的上面和下面的值的平均值填充空值

例如:

第一个索引中的空值应填入平均值(索引0值、索引2值)

第三个索引中的空值应填入平均值(第二个索引值、第六个索引值)

第四个索引中的空值应填入平均值(第三个索引值、第六个索引值)

第5个索引中的空值应填入平均值(第4个索引值、第6个索引值)等

应该对所有列执行此操作。如何执行此操作。请提供帮助。

我相信您需要对缺少的值进行回填:

df = df.interpolate().bfill()
print (df)
         Date     GCS  Compactability  Active Clay   WTS   LOI  Moisture
0  01-01-2019  1530.0            40.0         9.02  22.7  4.58      3.10
1  01-01-2019  1540.0            39.5         9.02  23.3  4.58      3.05
2  01-01-2019  1550.0            39.0         9.02  23.9  4.58      3.00
3  01-01-2019  1550.0            39.0         9.02  23.9  4.58      3.00
4  01-01-2019  1550.0            39.0         9.02  23.9  4.58      3.00

我认为这从
Clay
到最后都不起作用,可能是因为
pd.read\u clipboard()
activeclay
解释为两个columns@NicolasGervais-oops,错误的解析
活动Clay
如2列:(