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?
cost
la ú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}'.format
A 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
applymap
lo siguiente:fuente
df.to_csv()
para asegurarme de que todas las columnas de mi.csv
archivo 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