我有以下数据框。我尝试创建一个布尔序列,逻辑是:
(0后面跟着1为真。0前面跟着1为真。其他情况都为假)
这是数据框:
期望输出(0后面跟着1为真。0前面跟着1为真。其他情况为假):
我的输出使用:df['Truth'] = df['A'] == 0 | ((df['A'].shift() == 0) & (df['A'] == 1))
我在零上得到了 True,但只有在零后面跟着一时才应该是 True,而不是另一个零。如果能提供任何帮助将不胜感激。谢谢。
这是数据框:
df = pd.DataFrame({'A': {0: 1, 1: 0, 2: 1, 3: 1, 4: 1, 5: 0, 6: 1, 7: 1, 8: 1, 9: 1, 10: 0, 11: 0, 12: 1}})
A
0 1
1 0
2 1
3 1
4 1
5 0
6 1
7 1
8 1
9 1
10 0
11 0
12 1
期望输出(0后面跟着1为真。0前面跟着1为真。其他情况为假):
A Truth
0 1 False
1 0 True
2 1 True
3 1 False
4 1 False
5 0 True
6 1 True
7 1 False
8 1 False
9 1 False
10 0 False
11 0 True
12 1 True
我的输出使用:df['Truth'] = df['A'] == 0 | ((df['A'].shift() == 0) & (df['A'] == 1))
A Truth
0 1 False
1 0 True
2 1 True
3 1 False
4 1 False
5 0 True
6 1 True
7 1 False
8 1 False
9 1 False
10 0 True
11 0 True
12 1 True
我在零上得到了 True,但只有在零后面跟着一时才应该是 True,而不是另一个零。如果能提供任何帮助将不胜感激。谢谢。