Pandas,Fill布尔值比较两行

时间:2016-11-08 08:43:59

标签: python pandas dataframe broadcasting

我的数据是

        A      B
1   False   True
2   False   True
3   False   True
4   False   True
5    True  False
6    True  False
7   False   True
8    True  False
9    True   True
10  False   True
11  False   True
12  False   True
13   True  False
14   True  False
15  False  False
16  False  False
17  False  False

我的代码是

data.loc[(data['B']== False) & (data['B'].shift(1) == True), 'A'] = True
data.loc[(data['A'].shift(1)== True) & (data['B'].shift(1) == False),'A'] = True

我的愿望结果是第15,16,17行为True,

        A      B
1   False   True
2   False   True
3   False   True
4   False   True
5    True  False
6    True  False
7   False   True
8    True  False
9    True   True
10  False   True
11  False   True
12  False   True
13   True  False
14   True  False
15  **True**  False
16  **True**  False
17  **True**  False

一旦'A'为“True”,则A为“True”,然后满足“B”为“True”且“B”为“True”,则“A”变为“False”

有解决这个问题的简单方法吗? 提前致谢!!

0 个答案:

没有答案