# Counting the amount of times a boolean goes from True to False in a column

• A+
Category：Languages

I have a column in a dataframe which is filled with booleans and i want to count how many times it changes from True to False.

I can do this when I convert the booleans to 1's and 0's ,then use `df.diff` and then divide that answer by 2

``import pandas as pd  d = {'Col1': [True, True, True, False, False, False, True, True, True, True, False, False, False, True, True, False, False, True, ]}   df = pd.DataFrame(data=d)   print(df)  0    True 1    True 2    True 3   False 4   False 5   False 6    True 7    True 8    True 9    True 10  False 11  False 12  False 13   True 14   True 15  False 16  False ``

My expected outcome would be `The amount of times False came up is 3`

You can perform a `bitwise and` of the `Col1` with a mask indicating where changes occur in successive rows:

``(df.Col1 & (df.Col1 != df.Col1.shift(1))).sum() 3 ``

Where the mentioned Series, compares `Col1` with a shifted version of itself (`pd.shift`):

``df.Col1 != df.Col1.shift(1)  0      True 1     False 2     False 3      True 4     False 5     False 6      True 7     False 8     False 9     False 10     True 11    False 12    False 13     True 14    False 15    False 16    False 17    False Name: Col1, dtype: bool ``

For multiple columns, you can do exactly the same (Here I tested with a `col2` identical to `col1`)

``(df & (df != df.shift(1))).sum()  Col1    3 Col2    3 dtype: int64 ``