我重新考虑了这个问题,重新提出了我的问题。在
我有一个dataframe(df
),它有许多因子的timeseries数据。每个因素的时间序列可以从不同的日期开始,这是可以的。对于某些特定的日子,FactorB和FactorC缺少数据(空白)(在本例中为07/01/2017)。对于FactorB和FactorC这些空白日,我想用前一天该因子的值填充这些洞。例如:
FactorA FactorB FactorC
01/01/2017 5.50
02/01/2017 5.31
03/01/2017 5.62
04/01/2017 5.84 5.62 5.74
05/01/2017 5.95 5.85 5.86
06/01/2017 5.94 5.93 5.91
07/01/2017 5.62
08/01/2017 6.01 6.20 6.21
09/01/2017 6.12 6.20 3.23
在df
中,FactorB
和{df
看起来像:
我想知道我是否需要在申请之前将FactorB和FactorC上有洞的日期(在本例中为07/01/2017)的空白改为NaN
df= df.replace('',np.NaN).ffill()
因此,我对该问题的中间输出如下:
FactorA FactorB FactorC
01/01/2017 5.50
02/01/2017 5.31
03/01/2017 5.62
04/01/2017 5.84 5.62 5.74
05/01/2017 5.95 5.85 5.86
06/01/2017 5.94 5.93 5.91
07/01/2017 5.62 NaN NaN
08/01/2017 6.01 6.20 6.21
09/01/2017 6.12 6.20 3.23
但是,如何将NaN应用于合法缺失数据的天数(不更改FactorB和FactorC timeseries开始之前的日期)。还有没有一种方法可以做到这一点,而不需要特别地调用日期,因为洞可能是在任何日期。在
我尝试过以下方法,但当我检查数据时,空白仍然存在,我觉得我不想去哪里:
col = ['FactorB', 'FactorC']
df[col] = df[col].ffill()
我也试过:
df.fillna(method='ffill')
以及
df= df.replace('',np.NaN).ffill()
如果有人能提供一些帮助,我们将不胜感激。在
谢谢
如果某些值丢失且不是
NaN
:相关问题 更多 >
编程相关推荐