¿Cómo puedo asignar Verdadero / Falso a 1/0 en un Marco de datos de Pandas?

Tengo una columna en DataFrame de python pandas que tiene valores booleanos de Verdadero / Falso, pero para más cálculos necesito una representación de 1/0. ¿Hay una manera rápida de hacer pandas / números?

EDITAR: Las respuestas a continuación no parecen ser válidas en el caso de numpy que, dada una matriz con enteros y valores de Verdadero / Falso, devuelve dtype=object en dicha matriz. Para continuar con los cálculos adicionales en numpy, tuve que establecer explícitamente np_values = np.array(df.values, dtype = np.float64) .

True es 1 en Python, y también False es 0 * :

 >>> True == 1 True >>> False == 0 True 

Debería poder realizar cualquier operación que desee en ellos simplemente tratándolos como si fueran números, ya que son números:

 >>> issubclass(bool, int) True >>> True * 5 5 

Entonces, para responder a su pregunta, no es necesario trabajar, ya tiene lo que está buscando.

* Nota que uso es como una palabra en inglés, no la palabra clave de Python isTrue no será el mismo objeto que cualquier 1 azar.

Solo para responder de manera muy explícita a la pregunta de cómo convertir una sola columna de valores booleanos en una columna de enteros 1 o 0:

df.somecolumn = df.somecolumn.astype(int)

Solo multiplica tu Dataframe por 1 (int)

 [1]: data = pd.DataFrame([[True, False, True], [False, False, True]]) [2]: print data 0 1 2 0 True False True 1 False False True [3]: print data*1 0 1 2 0 1 0 1 1 0 0 1 

También puedes hacer esto directamente en marcos.

 In [104]: df = DataFrame(dict(A = True, B = False),index=range(3)) In [105]: df Out[105]: AB 0 True False 1 True False 2 True False In [106]: df.dtypes Out[106]: A bool B bool dtype: object In [107]: df.astype(int) Out[107]: AB 0 1 0 1 1 0 2 1 0 In [108]: df.astype(int).dtypes Out[108]: A int64 B int64 dtype: object