我们说我有一系列的1和0:
value
0 0
1 1
2 0
3 0
4 1
5 1
找到的可行方式是什么:
在0和1的情况下,我目前正在加入值并使用正则表达式,但我相信一般来说,这将是手动循环索引的情况。还有更好的方法吗?
此外,如果确实存在更好的方法,那么对于数据框架是否也存在类似的解决方案,其中您的条件涉及多个列?
答案 0 :(得分:1)
IIUIC,使用shift
并查询。
第一行,其中值为1(第1行)
In [486]: df[(df.value == 1)].head(1)
Out[486]:
value
1 1
前一个,当前值和下一个值为0,0,1(第3行)的第一行
In [487]: df[(df.value.shift(1) == 0) & (df.value == 0) & (df.value.shift(-1) == 1)]
Out[487]:
value
3 0
前一个当前值为0,1(第4行)的最后一行
In [489]: df[(df.value.shift(1) == 0) & (df.value == 1)].tail(1)
Out[489]:
value
4 1
以前的当前值为0,1(第4,1行)
的所有行In [490]: df[(df.value.shift(1) == 0) & (df.value == 1)]
Out[490]:
value
1 1
4 1