¿Cómo configurar la alineación izquierda / derecha de los datos del dataframe pandas?

Uso pd.set_option("display.colheader_justify","right") para establecer el encabezado de la columna. Pero no puedo encontrar la opción de datos por pd.describe_option() .

¿Cómo configurar los datos dentro de un dataframe para mostrar la alineación a la izquierda o la derecha de cada columna? O, ¿es posible definir una plantilla de formato para la visualización de datos de toda la fila?

Si desea cambiar la visualización en un cuaderno Jupyter, puede usar la función Estilo .

 # Test data df = DataFrame({'text': ['foo', 'bar'], 'number': [1, 2]}) df.style.set_properties(**{'text-align': 'right'}) 

introduzca la descripción de la imagen aquí

Puedes controlarlo por un nuevo contexto:

 with pd.option_context('display.colheader_justify','right'): ... 

En mi situación, tengo un envoltorio de clase alrededor de mi Pandas DataFrame. Esto me permite justificar a la izquierda la salida de cadena del DataFrame personalizando el método __str__() del contenedor.

Aquí es cómo resolví el problema para mi aplicación, basado en la respuesta de Unutbu a una pregunta similar . Pandas DataFrame es referenciado por self.data :

 def __str__(self): """ Return the test stats report as a single string with left-justified columns. """ # Columns containing boolean values need different format strings # to avoid 'ValueError: Invalid format specifier' exceptions. BOOL_COLUMNS = ['success',] formatters = {} for li in list(self.data.columns): if li in BOOL_COLUMNS: form = "{{!s:<5}}".format() else: max = self.data[li].str.len().max() form = "{{:<{}s}}".format(max) formatters[li] = functools.partial(str.format,form) return self.data.to_string(formatters=formatters, index=False)