我有一个带有ids的变量(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。还有其他方法吗?
答案 0 :(得分:0)
获取索引值
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))]