pandas fillna:如何从系列开始直到第一个值出现才填充领先的NaN?

时间:2018-03-01 14:26:40

标签: python pandas

我有几个pd.Series通常以一些NaN值开头,直到出现第一个实际值。我想用0填充这些领先的NaN,但不是在系列后面出现的任何NaN。

pd.Series([nan, nan, 4, 5, nan, 7])

应该成为

ps.Series([0, 0, 4, 5, nan, 7])

1 个答案:

答案 0 :(得分:4)

first_valid_index使用loc

s.loc[:s.first_valid_index()] = 0

maskisnull和前向填充NaN

s = s.mask(s.ffill().isnull(), 0)
print (s)
0    0.0
1    0.0
2    4.0
3    5.0
4    NaN
5    7.0
dtype: float64