为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

婷婷同学_ 2021-06-08 17:01:27
如何找到Pandas 系列中某个值的最后出现索引?例如,假设我有一个如下所示的系列:s = pd.Series([False, False, True, True, False, False])我想找到一个True值的最后一个索引(即索引 3),你会怎么做?
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

使用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'



查看完整回答
反对 回复 2021-06-16
?
慕容森

TA贡献1853条经验 获得超18个赞

使用 nonzero

s.nonzero()[0][-1]
Out[66]: 3


查看完整回答
反对 回复 2021-06-16
?
茅侃侃

TA贡献1842条经验 获得超21个赞

np.argmax如果您正在查看布尔数组,则可以在反向系列上使用:


>>> len(s) - np.argmax(s[::-1].values) - 1

3

如果您正在寻找另一个值,只需使用 ==


这是一个查找最后一次出现的示例dog:


>>> s = pd.Series(['dog', 'cat', 'fish', 'cat', 'dog', 'horse'])

>>> len(s) - np.argmax(s[::-1].values=='dog') - 1

4


查看完整回答
反对 回复 2021-06-16
  • 3 回答
  • 0 关注
  • 997 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信