用前几天d填充数据帧中的漏洞

2024-10-02 10:20:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我重新考虑了这个问题,重新提出了我的问题。在

我有一个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看起来像:

^{pr2}$

我想知道我是否需要在申请之前将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() 

如果有人能提供一些帮助,我们将不胜感激。在

谢谢


Tags: 数据方法dfnpcolnan空白replace

热门问题