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