Me gustaría mostrar un marco de datos de pandas con un formato determinado usando print()y el IPython display(). Por ejemplo:
df = pd.DataFrame([123.4567, 234.5678, 345.6789, 456.7890],
                  index=['foo','bar','baz','quux'],
                  columns=['cost'])
print df
         cost
foo   123.4567
bar   234.5678
baz   345.6789
quux  456.7890
Me gustaría de alguna manera obligar a esto a imprimir
         cost
foo   $123.46
bar   $234.57
baz   $345.68
quux  $456.79
sin tener que modificar los datos en sí o crear una copia, simplemente cambie la forma en que se muestran.
¿Cómo puedo hacer esto?

costla única columna flotante, o hay otras columnas flotantes que no deberían formatearse$?Respuestas:
rendimientos
pero esto solo funciona si desea que cada flotador se formatee con un signo de dólar.
De lo contrario, si desea formatear en dólares solo para algunos flotantes, creo que tendrá que modificar previamente el marco de datos (convirtiendo esos flotantes en cadenas):
rendimientos
fuente
with pd.option_context('display.float_format', '${:,.2f}'.format'):'antes del paréntesis de cierre en el comentario de @AndreHolzner; de lo contrario, funciona como un encanto!Si no desea modificar el marco de datos, puede usar un formateador personalizado para esa columna.
rendimientos
fuente
pd.options.display.float_format = '${:,.2f}'.formatA partir de Pandas 0.17 ahora hay un sistema de diseño que esencialmente proporciona vistas formateadas de un DataFrame utilizando cadenas de formato Python :
que muestra
Este es un objeto de vista; el DataFrame en sí no cambia el formato, pero las actualizaciones en el DataFrame se reflejan en la vista:
Sin embargo, parece tener algunas limitaciones:
Agregar nuevas filas y / o columnas en el lugar parece causar inconsistencia en la vista con estilo (no agrega etiquetas de fila / columna):
que se ve bien pero:
El formateo solo funciona para valores, no para entradas de índice:
fuente
Similar a unutbu anterior, también puede usar
applymaplo siguiente:fuente
df.to_csv()para asegurarme de que todas las columnas de mi.csvarchivo tengan el mismo "ancho de dígitos". ¡Gracias!Me gusta usar pandas.apply () con formato python ().
Además, se puede usar fácilmente con múltiples columnas ...
fuente
También puede establecer la configuración regional en su región y establecer float_format para usar un formato de moneda. Esto establecerá automáticamente el signo $ para la moneda en EE. UU.
fuente
resumen:
fuente