如何使用Python根据当前值填充缺失值?

我的数据是这样的:


a=pd.DataFrame({'id':[0,1,2,3,4,5,6,7,8,9],

                'value':[np.nan,np.nan,0,np.nan,np.nan,1,2,np.nan,3,np.nan]})

我想根据之前的已知值来填充缺失值。如果没有之前的值,则填充-1。所以,结果应该是这样的:


id    value

0     -1

1     -1

2     0

3     0

4     0

5     1

6     2

7     2

8     3

9     3

我当前的方法是找到所有已知值及其位置,然后扫描整个表。但应该有更好的方法,我不知道。我在这里可以尝试什么?


倚天杖
浏览 111回答 2
2回答

Helenr

使用df.ffill()和fillna():In [1587]: a.ffill().fillna(-1)Out[1587]:    id  value0   0   -1.01   1   -1.02   2    0.03   3    0.04   4    0.05   5    1.06   6    2.07   7    2.08   8    3.09   9    3.0

侃侃尔雅

你需要一个ffill和一个fillnaa['value'] = a.value.ffill().fillna(-1)Out[935]:   id  value0   0   -1.01   1   -1.02   2    0.03   3    0.04   4    0.05   5    1.06   6    2.07   7    2.08   8    3.09   9    3.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python