格式/抑制来自Pythonpandas聚集结果的科学记数法

如何修改大pandasgroupby操作输出的格式,为大数生成科学记数法。 我知道如何在pythong中进行string格式化,但在这里应用它时,我感到茫然。

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

这抑制了科学记数法,如果我转换为string,但现在我只是想知道如何string格式和添加小数。

 sum_sales_dept.astype(str) 

当然,我在评论中提到的答案并不是很有帮助。 你可以像这样指定你自己的string转换器。

 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 

我不知道这是否是这样做的首选方式,但它的工作原理。

纯粹为了审美目的而将数字转换为string似乎是一个坏主意,但如果您有一个很好的理由,这是一种方法:

 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 

这是另一种方法,几乎​​和上面的方式类似:

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