我正在尝试找到最近的索引,其值不是相对于当前索引的"NaN".所以,假设我有一个带有'NaN'值的DataFrame,如下所示:
A B C
0 2.1 5.3 4.7
1 5.1 4.6 NaN
2 5.0 NaN NaN
3 7.4 NaN NaN
4 3.5 NaN NaN
5 5.2 1.0 NaN
6 5.0 6.9 5.4
7 7.4 NaN NaN
8 3.5 NaN 5.8
Run Code Online (Sandbox Code Playgroud)
如果我目前在索引4,我有值:
A B C
4 3.5 NaN NaN
Run Code Online (Sandbox Code Playgroud)
我想知道'B'相对于索引4的最后已知值,它在索引处1:
A B C
1 5.1 -> 4.6 NaN
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用以下内容获取所有具有NaN值的索引的列表:
indexes = df.index[df['B'].apply(np.isnan)]
Run Code Online (Sandbox Code Playgroud)
但是在大型数据库中这似乎效率低下.有没有办法tail只相对于当前指数的最后一个?