我想找到 pandas 系列中最后一个非零元素的索引。我可以用一个循环来完成:
ilast = 0
for i in mySeries.index:
if abs(mySeries[i]) > 0:
ilast = i
有没有更简洁、更短的方法?
请您参考如下方法:
我可能只写s[s != 0].index[-1],例如
>>> s = pd.Series([0,1,2,3,0,4,0],index=range(7,14))
>>> s
7 0
8 1
9 2
10 3
11 0
12 4
13 0
dtype: int64
>>> s[s != 0].index[-1]
12
最初我认为使用 nonzero 会使事情变得更简单,但我能想到的最好的是
>>> s.index[s.nonzero()[0][-1]]
12
对于这个例子来说要快得多(快 30 多倍),但我不喜欢它的外观..YMMV。
