熊猫在两行之间插值

时间:2019-08-29 14:04:06

标签: python pandas

我有一个N行N列的熊猫数据框。 该数据帧的每一列都描述了一个几乎连续的值。 有时我需要用从所选行的上下两行插入的值替换行值。

示例: 这是我的数据框

                energy         dist
0.0           0.177927     0.031584
1.0           0.221856     0.040009
2.0           0.270373     0.049613
3.0           0.322914     0.060317
4.0           0.374736     0.071943
5.0           0.428795     0.084314
6.0           0.480093     0.097233
7.0           0.527760     0.110482
8.0           0.575735     0.123875
9.0           0.619085     0.137201
10.0          0.657782     0.150029
11.0          6.955060    3.623098
12.0          0.730219     0.173924
13.0          0.763311     0.184680
14.0          0.792759     0.194432
15.0          0.820090     0.203171
16.0          0.846813     0.211012
17.0          0.871730     0.218134
18.0          0.896308     0.224660
19.0          0.919440     0.230689
20.0          0.942667     0.236376

我需要用第10行和第12行之间的插值来更改第11行(例如,两行之间的平均值)

                energy         dist
0.0           0.177927     0.031584
1.0           0.221856     0.040009
2.0           0.270373     0.049613
3.0           0.322914     0.060317
4.0           0.374736     0.071943
5.0           0.428795     0.084314
6.0           0.480093     0.097233
7.0           0.527760     0.110482
8.0           0.575735     0.123875
9.0           0.619085     0.137201
10.0          0.657782     0.150029
11.0          0.694000    0.161976
12.0          0.730219     0.173924
13.0          0.763311     0.184680
14.0          0.792759     0.194432
15.0          0.820090     0.203171
16.0          0.846813     0.211012
17.0          0.871730     0.218134
18.0          0.896308     0.224660
19.0          0.919440     0.230689
20.0          0.942667     0.236376

在熊猫中,最有效的方法是什么?

谢谢

1 个答案:

答案 0 :(得分:1)

设置misisng值,然后使用Series.interpolate

df.loc[11, 'dist'] = np.nan
df['dist'] = df['dist'].interpolate()
print (df)
        energy      dist
0.0   0.177927  0.031584
1.0   0.221856  0.040009
2.0   0.270373  0.049613
3.0   0.322914  0.060317
4.0   0.374736  0.071943
5.0   0.428795  0.084314
6.0   0.480093  0.097233
7.0   0.527760  0.110482
8.0   0.575735  0.123875
9.0   0.619085  0.137201
10.0  0.657782  0.150029
11.0  6.955060  0.161976
12.0  0.730219  0.173924
13.0  0.763311  0.184680
14.0  0.792759  0.194432
15.0  0.820090  0.203171
16.0  0.846813  0.211012
17.0  0.871730  0.218134
18.0  0.896308  0.224660
19.0  0.919440  0.230689
20.0  0.942667  0.236376