python pandas floating-point scientific-notation numeric-format

Formatee/Suprima la notación científica de Python Pandas Agregación de resultados



floating-point scientific-notation (4)

Aquí hay otra forma de hacerlo, casi similar a la manera anterior:

pd.options.display.float_format = ''{:.2f}''.format Series(np.random.randn(3))

¿Cómo se puede modificar el formato para el resultado de una operación groupby en pandas que produce notación científica para números muy grandes? Sé cómo formatear cadenas en Python, pero estoy perdido cuando se trata de aplicarlo aquí.

df1.groupby(''dept'')[''data1''].sum() dept value1 1.192433e+08 value2 1.293066e+08 value3 1.077142e+08

Esto suprime la notación científica si paso a cadena, pero ahora me pregunto cómo formatear cadenas y agregar decimales.

sum_sales_dept.astype(str)


De acuerdo, la respuesta que relacioné en los comentarios no es muy útil. Puede especificar su propio convertidor de cadenas como tal.

In [25]: pd.set_option(''display.float_format'', lambda x: ''%.3f'' % x) In [28]: Series(np.random.randn(3))*1000000000 Out[28]: 0 -757322420.605 1 -1436160588.997 2 -1235116117.064 dtype: float64

No estoy seguro de si esa es la forma preferida de hacerlo, pero funciona.

Convertir números en cadenas puramente con fines estéticos parece una mala idea, pero si tiene una buena razón, esta es una forma:

In [6]: Series(np.random.randn(3)).apply(lambda x: ''%.3f'' % x) Out[6]: 0 0.026 1 -0.482 2 -0.694 dtype: object


Puede usar la función circular para suprimir la notación científica para un marco de datos específico:

df1.round(4)

o puede suprimir es globalmente por:

pd.options.display.float_format = ''{:.4f}''.format


Si desea utilizar los valores, por ejemplo, como parte de csvfile csv.writer, los números se pueden formatear antes de crear una lista:

df[''label''].apply(lambda x: ''%.17f'' % x).values.tolist()