我尝试用前向填充方法以及折扣率或 0.9 的递减率替换 pandas DataFrame 中的 NaN 值。
我有以下数据集:
Column1 Column2 Column3 Column4
0 1.0 5 -9.0 13.0
1 NaN 6 -10.0 15.0
2 3.0 7 NaN NaN
3 NaN 8 NaN NaN
为了重现性:
df1 = pd.DataFrame({
'Column1':[1, 'NaN', 3, 'NaN'],
'Column2':[5, 6, 7, 8],
'Column3':[-9, -10, 'NaN', 'NaN'],
'Column4':[13, 15, 'NaN', 'NaN']
})
df1 = df1.replace('NaN',np.nan)
我能够用fillna
命令和前向填充ffill
方法替换 NaN 值。
df2 = df1.fillna(method='ffill')
Column1 Column2 Column3 Column4
0 1.0 5 -9.0 13.0
1 1.0 6 -10.0 15.0
2 3.0 7 -10.0 15.0
3 3.0 8 -10.0 15.0
此外,我试图将比率 0.9 应用于所有前向填充的 NaN 值,这将产生以下数据集:
NaN 值第 2 行,第 3 列:-10 * 0.9 = -9
NaN 值第 3 行,第 3 列:-9 * 0.9 = -8.1
Column1 Column2 Column3 Column4
0 1.0 5 -9.0 13.00
1 0.9 6 -10.0 15.00
2 3.0 7 -9.0 13.50
3 2.7 8 -8.1 12.15
有没有简单的方法来处理它?
非常感谢!