猿问

如何在 Pandas 系列中找到与某个值匹配的最后一次出现索引?

如何找到Pandas 系列中某个值的最后出现索引?

例如,假设我有一个如下所示的系列:

s = pd.Series([False, False, True, True, False, False])

我想找到一个True值的最后一个索引(即索引 3),你会怎么做?


婷婷同学_
浏览 1028回答 3
3回答

繁花如伊

使用last_valid_index:s = pd.Series([False, False, True, True, False, False]) s.where(s).last_valid_index()输出:3使用@user3483203 示例s = pd.Series(['dog', 'cat', 'fish', 'cat', 'dog', 'horse'], index=[*'abcdef'])s.where(s=='cat').last_valid_index()输出'd'

慕容森

使用 nonzeros.nonzero()[0][-1] Out[66]: 3

茅侃侃

np.argmax如果您正在查看布尔数组,则可以在反向系列上使用:>>> len(s) - np.argmax(s[::-1].values) - 13如果您正在寻找另一个值,只需使用 ==这是一个查找最后一次出现的示例dog:>>> s = pd.Series(['dog', 'cat', 'fish', 'cat', 'dog', 'horse'])>>> len(s) - np.argmax(s[::-1].values=='dog') - 14
随时随地看视频慕课网APP

相关分类

Python
我要回答