如何用自定义函数替换pandas中的fill()方法



下面是我的示例df:

x   y
0   0   1.1
1   1   3.9
2   2   11.2
3   3   21.5
4   4   34.8
5   5   51.0
6   6   70.2
7   7   NaN
8   8   NaN
9   9   NaN

如果我想替换NaN值并填充最后一个数字(在本例中为70.2),我只需应用:

df['y'].ffill(inplace=True)

但是,如果我想应用自定义函数而不是填充()方法,该怎么办?例如,我需要将y列的NaN值替换为"2 * x^2"。查看所需输出df:

x   y
0   0   1.1
1   1   3.9
2   2   11.2
3   3   21.5
4   4   34.8
5   5   51.0
6   6   70.2
7   7   98
8   8   128
9   9   162 

只是为了说明:2 * 7^2 = 98等

谢谢你的帮助。

在这种情况下

df['y'] = df.y.fillna(df.x**2*2)
0      1.1
1      3.9
2     11.2
3     21.5
4     34.8
5     51.0
6     70.2
7     98.0
8    128.0
9    162.0
Name: y, dtype: float64

最新更新