从 pandas 聚合结果中格式化/取消科学记数法
问题描述
如何修改 pandas 中为非常大的数字生成科学记数法的GROUP BY操作输出的格式?
我知道如何在Python中进行字符串格式化,但是在这里应用它时,我感到无所适从。
df1.groupby('dept')['data1'].sum()
dept
value1 1.192433e+08
value2 1.293066e+08
value3 1.077142e+08
如果我转换为字符串,这会取消科学记数法,但现在我只是想知道如何设置字符串格式和添加小数。
sum_sales_dept.astype(str)
解决方案
承认,我在评论中链接的答案没有太大帮助。您可以这样指定您自己的字符串转换器。
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
我不确定这是否是执行此操作的首选方法,但它确实有效。
纯粹出于审美目的将数字转换为字符串似乎不是一个好主意,但如果您有很好的理由,这是一种方法:
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
相关文章