Do I need to convert booleans to ints to enter them in a machine learning algorithm?
In Python, True and False are cast implicitly into integers:

True == 1     # True!
False == 0    # True!


Although they are not the same objects - you can test this with True is 1, which returns False.

This means that an algorithm running in pure Python should work without conversion. Many libraries/algorithms have some part implemented in C/C++ in the background, in which case you might run into problems.

You could try the model on your Pandas DataFrame as boolean. If it crashes, you know you must convert to integers/floats.

Even if it doesn't crash, you could convert the values to integers or floats and run it for comparison. Here is a short example:

In [1]: import pandas as pd                                                                               
In [2]: df = pd.DataFrame({'a':[0, 2, 3, 4, 5], 'b':[True, False, True, False, False]})
In [3]: df                                                                                                
Out[3]: 
   a      b
0  0   True
1  2  False
2  3   True
3  4  False
4  5  False


Convert everything to boolean

In [4]: df.astype(bool)                                                                                   
Out[4]: 
      a      b
0  False   True
1  True   False
2  True    True
3  True   False
4  True   False

In [5]: df.astype(float)                                                                                  
Out[5]: 
     a    b
0  0.0  1.0
1  2.0  0.0
2  3.0  1.0
3  4.0  0.0
4  5.0  0.0