[英]Pandas forward fill with scalar multiple of last value
假设我有以下 DataFrame
import pandas as pd
import numpy as np
dict1 = {'A': [100,200, np.nan, 300, 500, np.nan, np.nan, 50],
'B': [0,1,np.nan,1,10, np.nan, np.nan, 5],
'C' : [100,200, np.nan, 300, 500, np.nan, np.nan, 200]}
df1 = pd.DataFrame(data=dict1)
我希望转发填充数据,使np.nan
值是最后一个值s
标量倍数。 说s = 0.5
。
我试过df1.fillna(0.5*df1)
但没用
我的预期结果是:
A B C
0 100.0 0.0 100.0
1 200.0 1.0 200.0
2 100.0 0.5 100.0
3 300.0 1.0 300.0
4 500.0 10.0 500.0
5 250.0 5.0 250.0
6 250.0 5.0 250.0
7 50.0 5.0 200.0
IIUC,尝试:
df1.fillna(df1.ffill().mul(.5))
Output:
A B C
0 100.0 0.0 100.0
1 200.0 1.0 200.0
2 100.0 0.5 100.0
3 300.0 1.0 300.0
4 500.0 10.0 500.0
5 250.0 5.0 250.0
6 250.0 5.0 250.0
7 50.0 5.0 200.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.