下面是我的示例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