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

问题描述 投票:2回答:1

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

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

应该成为

ps.Series([0, 0, 4, 5, nan, 7])
python pandas
1个回答
4
投票

使用first_valid_indexloc

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

maskisnull和前锋填充NaNs:

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
© www.soinside.com 2019 - 2024. All rights reserved.