問題描述
如何修改 pandas 中的 groupby 操作的輸出格式,該操作為非常大的數字生成科學記數法?
How can one modify the format for the output from a groupby operation in pandas that produces scientific notation for very large numbers?
我知道如何在 python 中進行字符串格式化,但是在這里應用它時我不知所措.
I know how to do string formatting in python but I'm at a loss when it comes to applying it here.
df1.groupby('dept')['data1'].sum()
dept
value1 1.192433e+08
value2 1.293066e+08
value3 1.077142e+08
如果我轉換為字符串,這會抑制科學記數法,但現在我只是想知道如何格式化字符串和添加小數.
This suppresses the scientific notation if I convert to string but now I'm just wondering how to string format and add decimals.
sum_sales_dept.astype(str)
推薦答案
當然,我在評論中鏈接的答案不是很有幫助.您可以像這樣指定自己的字符串轉換器.
Granted, the answer I linked in the comments is not very helpful. You can specify your own string converter like so.
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
我不確定這是否是首選方法,但它確實有效.
I'm not sure if that's the preferred way to do this, but it works.
純粹出于審美目的將數字轉換為字符串似乎是個壞主意,但如果你有充分的理由,這是一種方法:
Converting numbers to strings purely for aesthetic purposes seems like a bad idea, but if you have a good reason, this is one way:
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
這篇關于格式化/抑制 Python Pandas 聚合結果的科學記數法的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!