0

我有一个数据框,我想在以下两个条件下在数据框中填充空值

条件 1: NaN 之后的(in this example 10)值 > NaN 之前的值(7.5)

2.75
7.5
NaN
NaN
NaN
10

从 7.5 到 10 等量递增。所以它会像

2.75
7.5
8.125
8.75
9.375
10

PS:增量计算如下(10-7.5/4) = 0.625

条件 2: NaN 之后的值 < = Nan 之前的值

2.75
10
NaN
NaN
NaN
7.5

前向填充 NaN 值

2.75
10
10
10
10
7.5
4

1 回答 1

2

如果您的目标是为一个系列做这个,您可以使用:

df['Col'].fillna(df['Col'].interpolate().cummax())

对于数据框:

df.fillna(df.interpolate().cummax())

显示 con1 和 cond 2 的数据框(也可以为系列复制

print(df1)

     Col   Col1
0   2.75   2.75
1   7.50  10.00
2    NaN    NaN
3    NaN    NaN
4    NaN    NaN
5  10.00   7.50

print(df1.fillna(df1.interpolate().cummax()))
      Col   Col1
0   2.750   2.75
1   7.500  10.00
2   8.125  10.00
3   8.750  10.00
4   9.375  10.00
5  10.000   7.50
于 2021-09-06T15:53:11.013 回答