Pandas 数据框如果有 3 个连续数字

fre*_*rtz 1 python pandas

我有一个数据框df

    Price
0    3
1    3
2    3
3    -3
4    3
5    3
Run Code Online (Sandbox Code Playgroud)

我想制作一列来说明TRUE是否连续有 2 个正数

所以输出是

    Price    output
0    3        FALSE
1    3        TRUE
2    3        TRUE
3    -3       FALSE
4    3        FALSE
5    3        TRUE
Run Code Online (Sandbox Code Playgroud)

San*_*ord 5

用于.shift(1)查看上一行中的值:

df['two_positive'] = (df['Price'] >= 0) & (df['Price'].shift(1) >= 0)
Run Code Online (Sandbox Code Playgroud)

结果:

    Price   two_positive
0   3       False
1   3       True
2   3       True
3   -3      False
4   3       False
5   3       True
Run Code Online (Sandbox Code Playgroud)