如何修改pandas中groupby操作的输出格式,为大数字生成科学记数法.我知道如何在python中进行字符串格式化,但是在这里应用它时我感到很茫然.
df1.groupby('dept')['data1'].sum()
dept
value1 1.192433e+08
value2 1.293066e+08
value3 1.077142e+08
Run Code Online (Sandbox Code Playgroud)
如果我转换为字符串,这会抑制科学记数法,但现在我只是想知道如何字符串格式和添加小数.
sum_sales_dept.astype(str)
Run Code Online (Sandbox Code Playgroud) python floating-point scientific-notation number-formatting pandas
我在pandas中有一个DataFrame,其中一些数字用科学记数法(或指数表示法)表示,如下所示:
id value
id 1.00 -4.22e-01
value -0.42 1.00e+00
percent -0.72 1.00e-01
played 0.03 -4.35e-02
money -0.22 3.37e-01
other NaN NaN
sy -0.03 2.19e-04
sz -0.33 3.83e-01
Run Code Online (Sandbox Code Playgroud)
而科学的符号使得应该是一个简单的比较,不必要的困难.我认为它是21900的价值,正在为其他人搞砸.我的意思是1.0编码.一!
这不起作用:
np.set_printoptions(supress=True)
Run Code Online (Sandbox Code Playgroud)
并且pandas.set_printoptions没有实现抑制,并且我pd.describe_options()在绝望中看着所有,并且pd.core.format.set_eng_float_format()似乎只为所有其他浮点值打开它,没有能力将其关闭.
我正在使用Python的pandas做一些统计工作,我有以下代码打印出数据描述(平均值,计数,中位数等).
data=pandas.read_csv(input_file)
print(data.describe())
Run Code Online (Sandbox Code Playgroud)
但我的数据非常大(大约400万行),每行都有非常小的数据.因此,不可避免地,计数会很大,而且平均值会非常小,因此Python会像这样打印它.
我只是想完全打印这些数字只是为了易于使用和理解,例如它最好是4393476代替4.393476e+06.我用Google搜索了它,我发现的最多就是在Python中显示一个带有两个小数位的浮点数以及其他一些类似的帖子.但这只有在我已经在变量中有数字时才有效.虽然不是我的情况.在我的情况下,我没有这些数字.这些数字是由describe()函数创建的,所以我不知道我会得到什么数字.
对不起,如果这看起来像一个非常基本的问题,我仍然是Python新手.任何回应都是适用的.谢谢.