dataframe.describe() 抑制科学记数法[重复]

Posted

技术标签:

【中文标题】dataframe.describe() 抑制科学记数法[重复]【英文标题】:dataframe.describe() suppress scientific notation [duplicate] 【发布时间】:2017-03-13 20:40:22 【问题描述】:

如何抑制 dataframe.describe() 的科学计数法输出:

contrib_df["AMNT"].describe()

count    1.979680e+05
mean     5.915134e+02
std      1.379618e+04
min     -1.750000e+05
25%      4.000000e+01
50%      1.000000e+02
75%      2.500000e+02
max      3.000000e+06
Name: AMNT, dtype: float64

我的数据是 float64 类型的:

contrib_df["AMNT"].dtypes

dtype('float64')

【问题讨论】:

那么你想要什么呢? .describe 返回一个DataFrame,因此您可以简单地使用.drop 删除您不想要的行。如果你只想要count 这样的东西,你可以单独使用.count。或者您可以创建自己的 describe 函数,只返回您感兴趣的内容。 ***.com/a/20937592/1577947 使用类似pd.options.display.float_format = ':.2f'.format? @Jarad 完美。请将其发布为答案,我会接受。 @Jarad!如他之前所说,请将其发布为@mfabi 接受的答案。这应该是摆脱出现在熊猫中并默认显示的科学数字的编写方式。谢谢!! 【参考方案1】:

对于单列:

contrib_df["AMNT"].describe().apply(lambda x: format(x, 'f'))

对于整个 DataFrame(由 @databyte 建议)

df.describe().apply(lambda s: s.apply('0:.5f'.format))

对于整个 DataFrame(由 @Jayen 建议):

contrib_df.describe().apply(lambda s: s.apply(lambda x: format(x, 'g')))

由于函数 describe 返回一个数据帧,上述函数所做的只是将每一行格式化为常规格式。 我写了这个答案,因为我有一个想法,在我看来,那是 ** 将 95 计数为 95.00000e+01 是没有意义的** 此外,在我们的常规格式中,它更易于比较。

在应用上述函数之前,我们得到了

count    9.500000e+01
mean     5.621943e+05
std      2.716369e+06
min      4.770000e+02
25%      2.118160e+05
50%      2.599960e+05
75%      3.121170e+05
max      2.670423e+07
Name: salary, dtype: float64

申请后,我们得到

count          95.000000
mean       562194.294737
std       2716369.154553
min           477.000000
25%        211816.000000
50%        259996.000000
75%        312117.000000
max      26704229.000000
Name: salary, dtype: object

【讨论】:

对于任何试图在数据框而不是系列上执行此操作的人,它是:contrib_df.describe().apply(lambda s: s.apply(lambda x: format(x, 'g'))) @Jayen - 知道如何向上/向下舍入吗? @SCool - 我相信x 是一个普通的python 浮点数,所以你应该可以使用format(math.ceil(x), 'g') 这对我不起作用,得到unsupported format string passed to Series.__format__ 无需嵌套 lambda:df.describe().apply(lambda s: s.apply('0:.5f'.format))

以上是关于dataframe.describe() 抑制科学记数法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

pandas.DataFrame.describe() 与 numpy.percentile() NaN 处理

pandas.DataFrame.describe() 在 .py 脚本中没有输出

spark 2.3.1 上的 dataframe,Describe() 函数抛出 Py4JJavaError

Pyspark:dataframe describe() 和 summary() 是如何实现的

pandas.DataFrame.describe 官方文档翻译percentile_width,percentiles,include, exclude

对 Pandas DataFrame Describe 输出进行排序(早期解决方案不起作用)