Las pandas se asignan a VERDADERO / FALSO como cadena, no booleana

Cuando trato de convertir algunas columnas en un dataframe de pandas de ‘0’ y ‘1’ a ‘VERDADERO’ y ‘FALSO’, pandas detecta automáticamente el dtype como booleano. Quiero mantener dtype como cadena, con las cadenas ‘TRUE’ y ‘FALSE’.

Ver código a continuación:

booleanColumns = pandasDF.select_dtypes(include=[bool]).columns.values.tolist() booleanDictionary = {'1': 'TRUE', '0': 'FALSE'} pandasDF.to_string(columns = booleanColumns) for column in booleanColumns: pandasDF[column].map(booleanDictionary) 

Desafortunadamente, python convierte automáticamente dtype en booleano con la última operación. ¿Cómo puedo prevenir esto?

Si es necesario reemplazar valores boolean True y False :

 booleandf = pandasDF.select_dtypes(include=[bool]) booleanDictionary = {True: 'TRUE', False: 'FALSE'} for column in booleandf: pandasDF[column] = pandasDF[column].map(booleanDictionary) 

Muestra:

 pandasDF = pd.DataFrame({'A':[True,False,True], 'B':[4,5,6], 'C':[False,True,False]}) print (pandasDF) ABC 0 True 4 False 1 False 5 True 2 True 6 False booleandf = pandasDF.select_dtypes(include=[bool]) booleanDictionary = {True: 'TRUE', False: 'FALSE'} #loop by df is loop by columns, same as for column in booleandf.columns: for column in booleandf: pandasDF[column] = pandasDF[column].map(booleanDictionary) print (pandasDF) ABC 0 TRUE 4 FALSE 1 FALSE 5 TRUE 2 TRUE 6 FALSE 

EDITAR:

Solución más sencilla con replace por dict :

 booleanDictionary = {True: 'TRUE', False: 'FALSE'} pandasDF = pandasDF.replace(booleanDictionary) print (pandasDF) ABC 0 TRUE 4 FALSE 1 FALSE 5 TRUE 2 TRUE 6 FALSE