【发布时间】:2019-04-30 04:35:50
【问题描述】:
我有一个数据框,其中每一列都是不同长度的时间序列。因此,时间序列中的值之间都存在缺失值,并且在每个时间序列的末尾保存一列。我想填充值之间的缺失值,但不填充“尾随”NaN
使用df = df.fillna(method='ffill') 可以让我大部分时间到达那里,但会填充尾随的 NaN,这是我不想要的,因为数据结束的位置对我的分析实际上很重要。
编辑:
我想转这个:
ERICB SS Equity DCI US Equity FLEX US Equity
date
2008-02-14 8.026 NaN NaN
2008-02-18 NaN NaN 1.472
2008-02-19 8.074 NaN NaN
2008-02-22 NaN NaN 1.532
2008-02-25 8.062 NaN NaN
2008-03-03 8.100 NaN NaN
2008-03-06 8.100 NaN 1.955
2008-03-07 8.100 NaN NaN
2010-12-30 5.431 NaN NaN
2010-12-31 5.422 NaN NaN
2011-01-03 5.422 NaN NaN
2011-01-04 5.373 NaN NaN
进入这个:
ERICB SS Equity DCI US Equity FLEX US Equity
date
2008-02-14 8.026 NaN NaN
2008-02-18 8.026 NaN 1.472
2008-02-19 8.074 NaN 1.472
2008-02-22 8.074 NaN 1.532
2008-02-25 8.062 NaN 1.532
2008-03-03 8.100 NaN 1.532
2008-03-06 8.100 NaN 1.955
2008-03-07 8.100 NaN NaN
2010-12-30 5.431 NaN NaN
2010-12-31 5.422 NaN NaN
2011-01-03 5.422 NaN NaN
2011-01-04 5.373 NaN NaN
所以它是前向填充的,但只有当将来有一些非空值要填充时,才会留下尾随的空值。
【问题讨论】:
-
您想创建一个简单的数据框并向我们展示您的预期输出吗?
-
df = df.replace(np.nan, '', regex=True)
-
也可以试试 df = df.bfill().ffill()