繁体   English   中英

Pandas 前向填充,最后一个值的标量倍数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM