正在审核accepted answer of another question。
示范中让我困惑的部分是
In [37]: (sign != sign.shift()).cumsum()
Out[37]:
0 1
1 1
2 2
3 2
4 2
5 3
6 3
Name: values, dtype: int64
出现每次(sign!= sign.shift())给出True
结果时,cumsum()
返回一个递增的数字,并一直返回该数字,直到它遇到了另一个真实。
查看sparse docs for .cumsum,我不知道该行为是如何/为何发生的,无论多么有用!
我的唯一猜测就是cumsum()将True
视为1而False
视为0.看起来不像是一个pythonic的事情 - 听起来像来自C的东西。
有人可以解释为什么会出现这种影响吗?