在 python 中查找字符的出现和位置

Finding the occurrence and position of a character in python

我有一个带有 id 的变量 (var) 我有兴趣找出最后一次出现 Z

的位置

我试过将其转换为包含其位置的数组

    zf1=np.where(df2['Var']=="Z")

这将给我结果

    (array([4,5,6,7,8,9,10,11,12,22,23,24,25],dtype=int64),)

我的想法是找到这些值的差异并寻找-1 - 我使用这个-1的索引值在它旁边添加一个id

    np.diff(zf1)


    Var              ID
    A
    B
    C
    Z
    Z
    Z
    Z
    Z
    Z
    Z
    Z
    Z          1
    X
    X
    X
    X
    X
    X
    B
    A
    C
    Z
    Z
    Z
    Z           2

np.diff 没有给我 -1。有没有其他方法?

获取索引值

df2.index[df2.Var.eq('Z') & df2.Var.ne(df2.Var.shift(-1))]

过滤df2

df2[df2.Var.eq('Z') & df2.Var.ne(df2.Var.shift(-1))]