【发布时间】:2016-10-19 11:27:35
【问题描述】:
我正在尝试查找相对于当前索引的值不是“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
如果我目前处于索引 4,我有以下值:
A B C
4 3.5 NaN NaN
我想知道“B”相对于索引 4 的最后一个已知值,即索引 1:
A B C
1 5.1 -> 4.6 NaN
我知道我可以使用以下方法获取所有具有 NaN 值的索引的列表:
indexes = df.index[df['B'].apply(np.isnan)]
但这在大型数据库中似乎效率低下。有没有办法tail 只是相对于当前索引的最后一个?
【问题讨论】:
-
你的预期输出是什么?
-
理想情况下,我希望拥有值
4.6和索引1。 -
您只是想知道索引
4处的最新索引还是想知道所有索引? -
对于这种情况,只有查找索引处的那个(在示例中为 4)。
标签: python pandas numpy dataframe